Spring Boot教程(二十九)在springboot中验证表单信息
2018-02-26 00:00
459 查看
构建工程
创建一个springboot工程,由于用到了 web 、thymeleaf、validator、el,引入相应的起步依赖和依赖,代码清单如下:<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-el</artifactId> </dependency> </dependencies>
创建一个PresonForm的Object类
package com.forezp.entity; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; /** * Created by fangzhipeng on 2017/4/19. */ public class PersonForm { @NotNull @Size(min=2, max=30) private String name; @NotNull @Min(18) private Integer age; public String getName() { return this.name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String toString() { return "Person(Name: " + this.name + ", Age: " + this.age + ")"; } }
这个实体类,在2个属性:name,age.它们各自有验证的注解:
@Size(min=2, max=30) name的长度为2-30个字符
@NotNull 不为空
@Min(18)age不能小于18
创建 web Controller
@Controller public class WebController extends WebMvcConfigurerAdapter { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/results").setViewName("results"); } @GetMapping("/") public String showForm(PersonForm personForm) { return "form"; } @PostMapping("/") public String checkPersonInfo(@Valid PersonForm personForm, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return "form"; } return "redirect:/results"; } }
创建form表单
src/main/resources/templates/form.html:<html> <body> <form action="#" th:action="@{/}" th:object="${personForm}" method="post"> <table> <tr> <td>Name:</td> <td><input type="text" th:field="*{name}" /></td> <td th:if="${#fields.hasErrors('name')}" th:errors="*{name}">Name Error</td> </tr> <tr> <td>Age:</td> <td><input type="text" th:field="*{age}" /></td> <td th:if="${#fields.hasErrors('age')}" th:errors="*{age}">Age Error</td> </tr> <tr> <td><button type="submit">Submit</button></td> </tr> </table> </form> </body> </html>
注册成功的页面
src/main/resources/templates/results.html:html> <body> Congratulations! You are old enough to sign up for this site. </body> </html>
![](https://static.oschina.net/uploads/space/2018/0226/095718_iztc_3773422.jpg)
源码来源
相关文章推荐
- Spring Boot教程(六)在springboot中验证表单信息
- SpringBoot非官方教程 | 第十九篇: 验证表单信息
- SpringBoot非官方教程 | 第十九篇: 验证表单信息
- SpringBoot非官方教程 | 第十九篇: 验证表单信息
- SpringBoot非官方教程 | 第十九篇: 验证表单信息
- Spring Boot 与 Kotlin 验证web表单信息
- spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- SpringBoot非官方教程 | 第二十篇: 处理表单提交
- Spring Boot教程(四十二)LDAP来管理用户信息(2)
- SpringBoot 表单验证
- springboot-web进阶(一)——表单验证
- SpringBoot非官方教程 | 第二十篇: 处理表单提交
- spring boot的表单验证
- Spring Boot对表单实体做REST API请求自动封装验证
- Spring Boot教程(七)通过springboot 去创建和提交一个表单
- SpringBoot系列(六)SpringBoot 之表单验证
- SpringBoot基础教程2-1-7 数据验证-基础数据验证
- Spring Boot教程(三十)通过springboot 去创建和提交一个表单
- SpringBoot-表单验证
- SpringBoot 表单验证