Springmvc 简明教程
Spring MVC - Hidden Field Example
以下示例描述了如何在表单中使用Spring Web MVC框架中的隐藏字段。首先,让我们使用Eclipse IDE并按照以下步骤使用Spring Web框架开发一个基于动态表单的Web应用程序。
The following example describes how to use a Hidden Field in forms using the Spring Web MVC framework. To start with, let us have a working Eclipse IDE in place and consider the following steps to develop a Dynamic Form based Web Application using 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";
}
}
在这里,对于第一个服务方法 student() ,我们在ModelAndView对象中传递了一个空白 Studentobject ,名称为“command”,因为如果您在JSP文件中使用<form:form>标记,Spring框架将期待一个名为“command”的对象。因此,当调用 student() 方法时,它将返回 student.jsp 视图。
Here, for the first service method student(), we have passed a blank Studentobject in the ModelAndView object with the name "command", because the spring framework expects an object with the name "command", if you are using <form:form> tags in your JSP file. So, when the student() method is called, it returns the student.jsp view.
第二个服务方法 addStudent() 将针对 HelloWeb/addStudent URL 中的 POST 方法调用。您将根据已提交的信息准备模型对象。最后,将从服务方法返回一个“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>< </td>
<td><form:hidden path = "id" value = "1" /></td>
</tr>
<tr>
<td colspan = "2">
<input type = "submit" value = "Submit"/>
</td>
</tr>
</table>
</form:form>
</body>
</html>
在这里,我们使用 <form:hidden /> 标记来绘制一个HTML隐藏字段。
Here, we are using the <form:hidden /> tag to render a HTML hidden field.
例如 -
For example −
<form:hidden path = "id" value = "1"/>
它会呈现以下 HTML 内容。
It will render following HTML content.
<input id = "id" name = "id" type = "hidden" value = "1"/>
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>
在您创建了源文件和配置文件以后,导出您的应用程序。右键单击您的应用程序并使用 Export → WAR File 选项,并保存在Tomcat的webapps文件夹中。
Once you are done with creating source and configuration files, export your application. Right click on your application and use Export → WAR File option and save your HelloWeb.war file in Tomcat’s webapps folder.
现在,启动Tomcat服务器,并确保您能通过标准浏览器访问webapps文件夹中的其它网页。尝试一个URL – http://localhost:8080/HelloWeb/student ,如果Spring Web应用程序正常,我们将看到以下屏幕。
Now start your Tomcat server and make sure you are able to access other webpages from webapps folder using a standard browser. Try a URL – http://localhost:8080/HelloWeb/student and we will 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. We will see the following screen, if everything is fine with your Spring Web Application.