Página de índice de tutoriales de primavera
Anterior: Hola mundo
Siguiente: Manejo de envío de formularios
En el tutorial anterior, hemos visto cómo crear una aplicación simple de Hello World Spring usando Maven en Eclipse. En la aplicación Hello World, usamos anotación. En este tutorial, mostraré cómo usar la configuración xml y la inyección de dependencia del setter. En lugar de mostrar un mensaje en la vista final, esta vez muestra una lista de empleados.
Paso 1: Crear clases de Bean y Manager
Employee.java
package com.programcreek.helloworld.model;
public class Employee {
private String id;
private String lastName;
private String firstName;
public Employee(String id, String lastName, String firstName) {
this.id = id;
this.lastName = lastName;
this.firstName = firstName;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
}
|
paquete com.programcreek.helloworld.model; Empleado de clase pública {ID de cadena privada; private String lastName; Private String firstName; Empleado público (ID de cadena, apellido de cadena, nombre de cadena) {this.id = id; this.lastName = lastName; this.firstName = firstName; } public String getId () {id de retorno; } public void setId (String id) {this.id = id; } public String getLastName () {return lastName; } public void setLastName (String lastName) {this.lastName = lastName; } public String getFirstName () {return firstName; } public void setFirstName (String firstName) {this.firstName = firstName; }}
EmployeeManager.java
package com.programcreek.helloworld.service;
import java.util.ArrayList;
import java.util.List;
import com.programcreek.helloworld.model.Employee;
public class EmployeeManager {
private static List<Employee> employeeList;
public EmployeeManager(){
employeeList = new ArrayList<Employee>();
employeeList.add(new Employee("1", "Mike", "Smith"));
employeeList.add(new Employee("2", "John", "Taylor"));
employeeList.add(new Employee("3", "Dave", "Wilson"));
}
public List<Employee> getEmployeeList(){
return employeeList;
}
}
|
paquete com.programcreek.helloworld.service; import java.util.ArrayList; import java.util.List; import com.programcreek.helloworld.model.Employee; EmployeeManager de clase pública {Lista estática privada employeeList; Public EmployeeManager () {employeeList = new ArrayList (); employeeList.add (nuevo Empleado («1», «Mike», «Smith»)); employeeList.add (nuevo Empleado («2», «John», «Taylor»)); employeeList.add (nuevo Empleado («3», «Dave», «Wilson»)); } Lista pública getEmployeeList () {return employeeList; }}
Paso 2: crear controlador
EmployeeController.java
package com.programcreek.helloworld.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import com.programcreek.helloworld.service.EmployeeManager;
public class EmployeeController implements Controller {
private EmployeeManager employeeManager;
public EmployeeManager getEmployeeManager() {
return employeeManager;
}
public void setEmployeeManager(EmployeeManager employeeManager) {
this.employeeManager = employeeManager;
}
public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
System.out.println("in EmployeeController");
ModelAndView mv = new ModelAndView("employeeList");
mv.addObject("employeeList", this.employeeManager.getEmployeeList());
return mv;
}
}
|
paquete com.programcreek.helloworld.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; importar org.springframework.web.servlet.mvc.Controller; import com.programcreek.helloworld.service.EmployeeManager; EmployeeController de clase pública implementa Controller {EmployeeManager employeeManager privado; getEmployeeManager public EmployeeManager () {return employeeManager; } public void setEmployeeManager (EmployeeManager employeeManager) {this.employeeManager = employeeManager; } public ModelAndView handleRequest (HttpServletRequest arg0, HttpServletResponse arg1) lanza Exception {System.out.println («en EmployeeController»); ModelAndView mv = new ModelAndView («employeeList»); mv.addObject («employeeList», this.employeeManager.getEmployeeList ()); return mv; }}
Paso 3: crear vista
Cree otro archivo de vista: employeeList.jsp en el directorio de vistas.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ 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>Spring 4 MVC - Employee List</title>
</head>
<body>
<center>
<c:forEach items="${employeeList}" var="employee">
${employee.id}: ${employee.lastName}, ${employee.firstName}<br>
</c:forEach>
</center>
</body>
</html>
|
<% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> <% @ page language = "java" contentType = "text / html; charset = ISO- 8859-1 "pageEncoding =" ISO-8859-1 "%>
Spring 4 MVC – Lista de empleados title > $ {employee.id}: $ {employee.lastName}, $ {employee.firstName}
c: forEach>
c:
es de jstl. Así que agrego <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
. Esto dará un mensaje de advertencia «No se puede encontrar el descriptor de la biblioteca de etiquetas para» http://java.sun.com/jsp/jstl/core «.». Para solucionar el problema, abra el archivo pom.xml y agregue la dependencia usando el siguiente código:
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
|
jstl jstl 1.2
Cambie el archivo index.jsp a lo siguiente:
<%@ 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>Spring 4 MVC - HelloWorld Index Page</title>
</head>
<body>
<center>
<h3>
<a href="hello">Hello World</a>
</h3>
<h3>
<a href="employee">Employee List</a>
</h3>
</center>
</body>
</html>
|
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%>
Spring 4 MVC – Página de índice HelloWorld
Paso 4: configurar el archivo XML
Ahora necesitamos configurar el archivo dispatcher-servlet.xml. Después de cambiar, debería tener el siguiente aspecto:
<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.programcreek.helloworld.controller" />
<bean id="employeeManager" class="com.programcreek.helloworld.service.EmployeeManager" />
<bean name="/employee" class="com.programcreek.helloworld.controller.EmployeeController">
<property name="employeeManager" ref="employeeManager"/>
</bean>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
|
< property name = "employeeManager" ref = "employeeManager" /> / WEB-INF / views / .jsp
Resultado final
La vista final del navegador tiene el siguiente aspecto:
Ejecutando el proyecto, obtendremos las vistas.
Página de inicio
Página de lista de empleados
Enlace de descarga del código fuente.