You
can extract the information of complex object using . notation.
Example
${employeeDetails.firstName}:
Return the firstName of the Employee object.
${employeeDetails.address.city}:
Return the city of the employee. In this example, address is another object composed
in employee object.
Find
the below working application.
HelloWorldController.java
package com.sample.myApp.controllers; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import com.sample.myApp.model.Employee; import com.sample.myApp.service.EmployeeService; @Controller public class HelloWorldController { @RequestMapping(value = "getEmpDetails", method = RequestMethod.POST) public ModelAndView getWelcomeMessage(@RequestParam("id") int employeeId) { Employee emp = EmployeeService.getEmployee(employeeId); String msg = "Details of the employee id " + employeeId; ModelAndView modelAndView = new ModelAndView("employeeDetails"); modelAndView.addObject("message", msg); modelAndView.addObject("employeeDetails", emp); return modelAndView; } }
Address.java
package com.sample.myApp.model; public class Address { private String city; private String country; private String street; private String houseNumber; public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } public String getHouseNumber() { return houseNumber; } public void setHouseNumber(String houseNumber) { this.houseNumber = houseNumber; } }
Employee.java
package com.sample.myApp.model; public class Employee { private int id; private String firstName; private String lastName; private Address address; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } }
EmployeeService.java
package com.sample.myApp.service; import java.util.*; import com.sample.myApp.model.Address; import com.sample.myApp.model.Employee; public class EmployeeService { private static Map<Integer, Employee> employees; static { loadEmployees(); } private static void loadEmployees() { Employee emp = new Employee(); emp.setId(512); emp.setFirstName("Krishna"); emp.setLastName("CR"); Address address = new Address(); address.setCity("Kakinada"); address.setCountry("India"); address.setHouseNumber("H-123"); address.setStreet("Beach Road"); emp.setAddress(address); employees = new HashMap<>(); employees.put(emp.getId(), emp); } public static Employee getEmployee(int id) { return employees.get(id); } }
Create
employeeDetails.jsp file under WEB-INF/jsp folder.
employeeDetails.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Hello World Spring Web MVC</title> </head> <body> <table> <thead>${message}</thead> <tr> <td>First Name</td> <td>${employeeDetails.firstName}</td> </tr> <tr> <td>Last Name</td> <td>${employeeDetails.lastName}</td> </tr> <tr> <td>Address</td> <td>${employeeDetails.address.city},${employeeDetails.address.country}, ${employeeDetails.address.street}, ${employeeDetails.address.houseNumber}</td> </tr> </table> </body> </html>
Create
web.xml, HelloWorld-servlet.xml files under WEB-INF folder.
web.xml
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Spring MVC Hello WorldApplication</display-name> <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
HelloWorld-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="com.sample.myApp" /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> </beans>
Create
index.jsp file under webapp folder.
index.jsp
<html> <head> <title>User Information Page</title> </head> <div id="login_form"> <form method="post" action="/springdemo/getEmpDetails" id="f1"> <table> <tr> <td>Enter Employee id :</td> <td><input type="text" name="id" value="" /></td> </tr> <tr> <td><input type="submit" name="submit" value="submit" style="font-size: 18px;" /></td> </tr> </table> </form> </div> </html>
Project
structure looks like below.
Run
the application on server, you can able to see below image.
Enter
the employee id as 512 and click on submit button.
You
can able to see below message.
No comments:
Post a Comment