Springmvc 简明教程

Spring MVC - Text Box Example

以下示例演示了如何在表单中使用文本框,使用 Spring Web MVC 框架。首先,让我们准备一个能正常工作的 Eclipse IDE,然后按照以下步骤使用 Spring Web 框架开发一个基于动态表单的 Web 应用程序−

The following example shows how to use Text boxes in forms using the Spring Web MVC framework. To begin with, let us have a working Eclipse IDE in place and stick to the following steps to develop a Dynamic Form based 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 Example chapter.

2

Create a Java classes Student, StudentController under the com.tutorialspoint package.

3

Create a view files student.jsp, result.jsp under 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 对象中传递了一个空白 Student 对象,名称为“command”,因为如果您在 JSP 文件中使用 <form:form> 标记,Spring 框架需要名称为“command”的对象。所以当调用 student() 方法时,它会返回 student.jsp view

Here, the first service method student(), we have passed a blank Studentobject in the ModelAndView object with name "command", because the spring framework expects an object with name "command", if you are using <form:form> tags in your JSP file. So, when the student() method is called it returns 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><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>

这里我们使用 <form:input /> 标记来呈现 HTML 文本框。例如 −

Here, we are using <form:input /> tag to render an HTML text box. For example −

<form:input path = "name" />

它会呈现以下 HTML 内容。

It will render following HTML content.

<input id = "name" name = "name" type = "text" value = ""/>

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 选项,并将 HelloWeb.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 HelloWeb.war file in Tomcat’s webapps folder.

现在,启动 Tomcat 服务器,确保您能够使用标准浏览器从 webapps 文件夹访问其他网页。尝试一个 URL – http://localhost:8080/HelloWeb/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. Try a URL – http://localhost:8080/HelloWeb/student and we will see the following screen if everything is fine with the Spring Web Application.

text box spring student form

在提交所需信息后,单击“submit”按钮提交表单。如果 Spring Web 应用程序一切正常,我们将会看到以下屏幕。

After submitting the required information, click on the submit button to submit the form. We should see the following screen, if everything is fine with the Spring Web Application.

text box spring student form result