привет. Пытаясь создать собственное весеннее приложение, я создал страницу для ввода имени и возраста. Нажав на кнопку «Отправить», я перейду на другую страницу, отображающую ввод пользователя. Я решил не использовать какую-либо базу данных. В качестве первого шагаЯ решил создать контроллер с методом для отображения вида формы. После того как я получу это право, я реализую другие методы.
package personinfo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import personinfo.form.PersonInfo;
@Controller
public class PersonInfoController {
@RequestMapping(value ="/addPerson" )
public ModelAndView showAddPersonForm(){
return new ModelAndView("addperson", "personInfoEntries", new PersonInfo());
}
@RequestMapping(value ="/addPerson" ,method =RequestMethod.POST)
public String addPersonInfo(@ModelAttribute("person")PersonInfo perInfo){
String name = perInfo.getName();
int age = perInfo.getAge();
System.out.println("Name:" + name +"Age:"+ age);
return "showperson";//how to pass name and age
}
...
}
Объект поддержки формы - это personinfo.form.PersonInfo class
package personinfo.form;
public class PersonInfo {
private String name;
private int age;
public PersonInfo(){
}
public PersonInfo(String name,int age){
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
/ WEB-INF / jsp / addperson.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">
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Add Person</title>
</head>
<body>
<h2>Add Person</h2>
<form:form action="addPerson.html" commandName="personInfoEntries">
<table>
<tr>
<td>
<form:label path="name">Name</form:label>
</td>
<td>
<form:input path="name"/>
</td>
</tr>
<tr>
<td>
<form:label path="age">Age</form:label>
</td>
<td>
<form:input path="age"/>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Add Person"/>
</td>
</tr>
</table>
</form:form>
</body>
</html>
perinfo / WebContent / index.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>index</title>
</head>
<body>
<jsp:forward page="addPerson.html"></jsp:forward>
</body>
</html>
/ perinfo / WebContent /WEB-INF / web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>personinfo</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>
наконец, /perinfo/WebContent/WEB-INF/dispatcher-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<mvc:annotation-driven/>
<context:annotation-config />
<context:component-scan base-package="personinfo.controller" />
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp">
<property name="contentType" value="text/html; charset=utf-8" />
</bean>
</beans>
Как указал Крис, я добавил @Контроллер для класса контроллера и в servlet.xml.Теперь я могу видеть форму. Когда я нажимаю на кнопку отправки, отображается showperson.jsp. Так что все хорошо.
Когда выполняется метод addPersonInfo () в PersonInfoController, я хотел бы передатьимя и возрастные значения для showperson.jsp. Как я могу это сделать?Я возвращаю строку имени представления «showperson». Как я могу добавить к ней аргументы? И я не мог понять, как реализовать соответствующий метод, которому должно быть сопоставлено это имя представления.
Может кто-тоПожалуйста, покажите мне? Или мне нужно изменить типы возвращаемых данных метода addPersonInfo ().
Пожалуйста, помогите.
спасибо,
mark