Springmvc 简明教程
Spring MVC - Form Handling Example
以下示例展示了如何使用 Spring MVC 框架编写简单基于 web 的 Hello World 应用程序。首先,我们准备一个可用的 Eclipse IDE,然后遵循以下步骤使用 Spring Web 框架开发一个动态 Web 应用程序。
The following example shows how to write a simple web based Hello World application using the Spring MVC Framework. To start with, let us have a working Eclipse IDE in place and follow the subsequent steps to develop a Dynamic Web Application using the Spring Web Framework.
Step |
Description |
1 |
Create a project with a name HelloWeb under a package com.tutorialspoint as explained in the Spring MVC - Hello World chapter. |
2 |
Create Java classes Student, StudentController under the com.tutorialspoint package. |
3 |
Create view files student.jsp, result.jsp under the jsp sub-folder. |
4 |
The final step is to create the content of the source and configuration files and export the application as explained below. |
Student.java
package com.tutorialspoint;
public class Student {
private Integer age;
private String name;
private Integer id;
public void setAge(Integer age) {
this.age = age;
}
public Integer getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getId() {
return id;
}
}
StudentController.java
package com.tutorialspoint;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.ui.ModelMap;
@Controller
public class StudentController {
@RequestMapping(value = "/student", method = RequestMethod.GET)
public ModelAndView student() {
return new ModelAndView("student", "command", new Student());
}
@RequestMapping(value = "/addStudent", method = RequestMethod.POST)
public String addStudent(@ModelAttribute("SpringWeb")Student student,
ModelMap model) {
model.addAttribute("name", student.getName());
model.addAttribute("age", student.getAge());
model.addAttribute("id", student.getId());
return "result";
}
}
这里,在第一个 service 方法 student() 中,我们已经在具有名称“command”的 ModelAndView 对象中传递了一个空白的 Student 对象。我们之所以这么做,是因为如果我们在 JSP 文件中使用 <form:form> 标记,Spring 框架便希望有一个名为 “command” 的对象。因此,在调用 student() 方法时,它将返回 student.jsp 视图。
Here, the first service method student(), we have passed a blank Studentobject in the ModelAndView object with name "command". This is done because the spring framework expects an object with name "command", if we use <form:form> tags in the JSP file. So, when the student() method is called, it returns student.jsp view.
第二个 service 方法 addStudent() 将针对 HelloWeb/addStudent 网址上的 POST 方法进行调用。您将基于已提交信息准备您的模型对象。最后,将从 service 方法返回一个 “result” 视图,这将导致呈现 result.jsp。
The second service method addStudent() will be called against a POST method on the HelloWeb/addStudent URL. You will prepare your model object based on the submitted information. Finally, a "result" view will be returned from the service method, which will result in rendering result.jsp.
student.jsp
<%@taglib uri="http://www.springframework.org/tags/form" prefix = "form"%>
<html>
<head>
<title>Spring MVC Form Handling</title>
</head>
<body>
<h2>Student Information</h2>
<form:form method = "POST" action = "/HelloWeb/addStudent">
<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><form:label path = "id">id</form:label></td>
<td><form:input path = "id" /></td>
</tr>
<tr>
<td colspan = "2">
<input type = "submit" value = "Submit"/>
</td>
</tr>
</table>
</form:form>
</body>
</html>
result.jsp
<%@taglib uri = "http://www.springframework.org/tags/form" prefix = "form"%>
<html>
<head>
<title>Spring MVC Form Handling</title>
</head>
<body>
<h2>Submitted Student Information</h2>
<table>
<tr>
<td>Name</td>
<td>${name}</td>
</tr>
<tr>
<td>Age</td>
<td>${age}</td>
</tr>
<tr>
<td>ID</td>
<td>${id}</td>
</tr>
</table>
</body>
</html>
在完成源文件和配置文件的创建后,导出您的应用程序。右键单击您的应用程序,使用导出 → WAR 文件选项,然后将 SpringWeb.war 文件保存到 Tomcat 的 webapps 文件夹中。
Once we are done with creating source and configuration files, export your application. Right click on your application, use Export → WAR File option and save the SpringWeb.war file in Tomcat’s webapps folder.
现在,启动 Tomcat 服务器,并确保可以使用标准浏览器访问 webapps 文件夹中的其他网页。现在,尝试一个网址 – [role="bare"] [role="bare"]http://localhost:8080/SpringWeb/student ,如果 Spring Web 应用程序一切正常,您应该会看到以下屏幕。
Now, start the Tomcat server and make sure you are able to access other webpages from the webapps folder using a standard browser. Now, try a URL– [role="bare"]http://localhost:8080/SpringWeb/student and you should see the following screen if everything is fine with the Spring Web Application.
在提交所需的信息后,单击提交按钮以提交表单。如果 Spring Web 应用程序一切正常,你应该会看到以下屏幕。
After submitting the required information, click on the submit button to submit the form. You should see the following screen, if everything is fine with your Spring Web Application.