本文介绍了如何在Spring中处理表单。在此程序中,将添加一个表单提交模块。具体来说,我们将使用Web表单添加新员工并显示新员工列表。
步骤1:准备必修课程
将addEmployee方法添加到EmployeeManager.java。此方法将用于将新员工添加到列表中。
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 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;
}
public Employee addEmployee(Employee e){
Employee employee = new Employee();
employee.setId(employeeList.size()+1);
employee.setFirstName(e.getFirstName());
employee.setLastName(e.getLastName());
employeeList.add(employee);
return employee;
}}
Employee.java
package com.programcreek.helloworld.model;
public class Employee {
private int id;
private String lastName;
private String firstName;
public Employee(){
}
public Employee(int id, String lastName, String firstName) {
this.id = id;
this.lastName = lastName;
this.firstName = firstName;
}
public int getId() {
return id;
}
public void setId(int 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;
}}
步骤2:建立控制器
创建一个新的控制器来处理表单提交。
EmployeeAddController.java
package com.programcreek.helloworld.controller;
import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import com.programcreek.helloworld.model.Employee;import com.programcreek.helloworld.service.EmployeeManager;
@Controllerpublic class EmployeeAddController {
@RequestMapping("/showEmployeeForm")
public ModelAndView getEmployeeForm(){
ModelAndView mv = new ModelAndView("employeeAdd");
mv.addObject("employeeEntity", new Employee());
return mv;
}
@RequestMapping("/addEmployee")
public ModelAndView addEmployee(@ModelAttribute Employee e){
ModelAndView mv = new ModelAndView("employeeList");
EmployeeManager employeeManager = new EmployeeManager();
employeeManager.addEmployee(e);
mv.addObject("employeeList", employeeManager.getEmployeeList());
return mv;
}}
控制器在这里处理两个请求:一个将网页引导到表单,另一个处理表单提交。注意@ModelAttribute将表单的属性映射到员工。
步骤3:建立检视
employeeAdd.jsp
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %><%@ taglib prefix=“form” uri=“http://www.springframework.org/tags/form” %>
<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1” pageEncoding=“ISO-8859-1”%>
Add Employee
<form:form method="post" modelAttribute="employeeEntity" action="addEmployee">
First Name:<form:input path="firstName"></form:input><br/>
Last Name: <form:input path="lastName"></form:input><br/>
<input type="submit" value="Submit">
</form:form></body></html>
添加一个新链接,该链接将导致添加员工表格。
index.jsp
<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>
Hello World
<h3>
<a href="employee">Employee List</a>
</h3>
<h3>
<a href="showEmployeeForm">Add Employee</a>
</h3>
</center></body></html>
最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。