SpringBoot非官方教程 | 第十九篇: 验证表单信息
2017-12-04 19:54
881 查看
版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接 ,博主地址:http://blog.csdn.net/forezp。
转载请标明出处:
http://blog.csdn.net/forezp/article/details/71023817
本文出自方志朋的博客
这篇文篇主要简述如何在springboot中验证表单信息。在springmvc工程中,需要检查表单信息,表单信息验证主要通过注解的形式。
创建一个springboot工程,由于用到了 web 、thymeleaf、validator、el,引入相应的起步依赖和依赖,代码清单如下:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
这个实体类,在2个属性:name,age.它们各自有验证的注解:
@Size(min=2, max=30) name的长度为2-30个字符
@NotNull 不为空
@Min(18)age不能小于18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
src/main/resources/templates/form.html:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
src/main/resources/templates/results.html:
2
3
4
5
6
7
启动工程,访问http://localhost:8080/:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/27/b6607b8d23d60399a1e28d8ff2eca396.png)
如果你输入A和15,点击 submit:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/27/50d4e335948ce6bfafbf3c1ddd6c9b59.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/27/42b41424b7b19d122dcb1e19d4758bac.png)
如果name 输入N, age为空:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/27/902801f1b00e2939e67cc7c485a657a9.png)
如果输入:forezp. 18
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/27/826b75cf65488c4faf9d78dfdac4bbbe.png)
https://spring.io/guides/gs/validating-form-input/
https://github.com/forezp/SpringBootLearning
更多springboot 教程:springBoot非官方教程 | 文章汇总
更多springcoud 教程:史上最简单的 SpringCloud 教程 | 文章汇总
* 按照博客,成功执行
转载请标明出处:
http://blog.csdn.net/forezp/article/details/71023817
本文出自方志朋的博客
这篇文篇主要简述如何在springboot中验证表单信息。在springmvc工程中,需要检查表单信息,表单信息验证主要通过注解的形式。
构建工程
创建一个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>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
创建一个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 + ")"; } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
这个实体类,在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"; } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
创建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>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
注册成功的页面
src/main/resources/templates/results.html:html> <body> Congratulations! You are old enough to sign up for this site. </body> </html>1
2
3
4
5
6
7
演示
启动工程,访问http://localhost:8080/:![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/27/b6607b8d23d60399a1e28d8ff2eca396.png)
如果你输入A和15,点击 submit:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/27/50d4e335948ce6bfafbf3c1ddd6c9b59.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/27/42b41424b7b19d122dcb1e19d4758bac.png)
如果name 输入N, age为空:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/27/902801f1b00e2939e67cc7c485a657a9.png)
如果输入:forezp. 18
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/27/826b75cf65488c4faf9d78dfdac4bbbe.png)
参考资料
https://spring.io/guides/gs/validating-form-input/
源码下载
https://github.com/forezp/SpringBootLearning
优秀文章推荐:
更多springboot 教程:springBoot非官方教程 | 文章汇总更多springcoud 教程:史上最简单的 SpringCloud 教程 | 文章汇总
* 按照博客,成功执行
相关文章推荐
- SpringBoot非官方教程 | 第十九篇: 验证表单信息
- SpringBoot非官方教程 | 第十九篇: 验证表单信息
- SpringBoot非官方教程 | 第十九篇: 验证表单信息
- Spring Boot教程(六)在springboot中验证表单信息
- Spring Boot教程(二十九)在springboot中验证表单信息
- SpringBoot非官方教程 | 第二十篇: 处理表单提交
- SpringBoot非官方教程 | 第二十篇: 处理表单提交
- SpringBoot非官方教程 | 第二十篇: 处理表单提交
- SpringBoot非官方教程 | 第二十篇: 处理表单提交
- spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- Spring Boot 与 Kotlin 验证web表单信息
- 玩转spring boot——AOP与表单验证
- SpringBoot非官方教程 | 第十篇: 用spring Restdocs创建API文档
- SpringBoot非官方教程 | 第五篇:springboot整合 beatlsql
- SpringBoot非官方教程 | 第二十五篇:2小时学会springboot
- (转) SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程
- SpringBoot非官方教程,异步方法
- springboot-web进阶(一)——表单验证
- SpringBoot非官方教程 | 第六篇:springboot整合mybatis
- SpringBoot非官方教程 | 第十二篇:springboot集成apidoc