Logo
Section 1 / 11

Spring MVC 表单标签

学习如何使用 Spring MVC 表单标签,它们可实现自动数据绑定。

导入

Spring MVC 表单标签

学习如何使用 Spring MVC 表单标签,它们可实现自动数据绑定。

添加 Spring 表单标签引用

1<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

运动员类

1@Component 2public class Athlete { 3 private String lastName; 4 5 public Athlete() { 6 } 7 8 public String getLastName() { 9 return lastName; 10 } 11 12 public void setLastName(String lastName) { 13 this.lastName = lastName; 14 } 15}

AthleteController 类

1@Controller 2public class AthleteController { 3 4 // 处理 /showPlayerForm 请求的方法 5 6 // 处理 /processPlayerForm 请求的方法 7}

使用 @RequestMapping 进行类级别映射

1@Controller 2@RequestMapping("/player") 3public class AthleteController { 4 5 // 处理 /showPlayerForm 请求的方法 6 7 // 处理 /processPlayerForm 请求的方法 8}

创建 showForm() 方法

1@RequestMapping("/showPlayerForm") 2public String showForm(Model model) { 3 model.addAttribute("athlete", new Athlete()); 4 return "add-player-form"; 5}
1<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> 2 3<!DOCTYPE html> 4<html> 5 <head> 6 <title>添加球员</title> 7 </head> 8 <body> 9 <h2>球员表单</h2> 10 <hr> 11 12 <form:form action="processPlayerForm" modelAttribute="athlete"> 13 14 </form:form> 15 </body> 16</html>
...
HTML 与 Spring MVC 表单标签对比
...
HTML 与 Spring MVC 中的文本框标签对比
1<form:form action="processPlayerForm" modelAttribute="athlete"> 2 <br><br> 3 姓名: <form:input path="lastName"/> 4 5 <br><br> 6 <input type="submit" value="添加球员"/> 7</form:form>
...
加载表单时调用 getter 方法
...
提交表单时调用 setter 方法

在 processForm() 方法中添加 @ModelAttribute 注解

1@RequestMapping("/processPlayerForm") 2public String processForm(@ModelAttribute("athlete") Athlete myAthlete) { 3 return "player-confirmation"; 4}
...
@ModelAttribute 简化代码
1<!DOCTYPE html> 2<html> 3 <head> 4 <title>球员确认</title> 5 </head> 6 <body> 7 <h2>球员确认</h2> 8 <hr> 9 10 <br><br> 11 球员已成功添加。 12 13 <br><br> 14 姓名:${athlete.lastName} 15 </body> 16</html>
1<!DOCTYPE html> 2<html> 3 <head> 4 <title>主菜单</title> 5 </head> 6 <body> 7 <h2>Spring MVC - 网球球员数据库</h2> 8 9 <hr /><br /> 10 <a href="showPlayerForm"> 查询球员</a> 11 12 <br /><br /> 13 <a href="player/showPlayerForm"> 添加球员信息</a> 14 </body> 15</html>

No configuration found for ID: a3457048b1d1e815f9b1807a9bb93c487ed0fb2fd0517e1ce03c0aa6848ee843

Spring MVC 核心概念

Spring MVC 表单标签 - 第二部分