这篇文篇主要简述如何在springboot中验证表单信息。在springmvc工程中,需要检查表单信息,表单信息验证主要通过注解的形式。

构建工程

创建一个springboot工程,由于用到了 web 、thymeleaf、validator、el,引入相应的起步依赖和依赖,代码清单如下:

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
<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类

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
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<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>

  

架构代码如下 :

资料和源码来源地址

Spring Cloud大型企业分布式微服务云架构源码请加企鹅求求:一七九一七四三三八零

转载于:https://juejin.im/post/5c7cc51c51882546be0a0b77

企业级 SpringBoot 教程 (十九) 验证表单信息相关推荐

  1. 任务二十九:表单(一)单个表单项的检验

    任务二十九:表单(一)单个表单项的检验 面向人群: 初学者 难度: 简单 重要说明 百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计.我们尽力保证课程内容的质量以及学习难度 ...

  2. C1认证学习十八、十九(表单元素、转义字符)

    C1认证学习十八.十九(表单元素.语义化标签) 十八 任务背景 HTML的表单用于收集用户的输入,表单元素是指的不同类型的input元素,复选框,单选按钮,提交按钮等等. 任务目标 掌握表单标签以及其 ...

  3. springmvc十九:springmvc表单标签

    1. Spring提供的轻量级标签库 2.可在JSP页面中渲染HTML元素的标签 3 用法 1)必须在JSP页面的开头处声明taglib指令 <%@ taglib prefix="fm ...

  4. 企业级 SpringBoot 教程 (九)springboot整合Redis

    引入依赖: 在pom文件中添加redis依赖: <dependency><groupId>org.springframework.boot</groupId>< ...

  5. Flask项目实战——7—(Redis数据库存储验证码信息、验证登录界面的表单信息、注册功能实现、登录实现)

    推荐一个API平台:聚合数据 1.Redis数据库存储验证码信息 保存手机验证码到Redis数据库 公有视图文件:apps/common/views.py # -*- encoding: utf-8 ...

  6. go实践二十 web开发--表单唯一token 表单验证 防止xss攻击 上传文件 cookie处理

    新建一个 testform2.gtpl 文件,内容如下: <!doctype html> <html lang="en"> <head>< ...

  7. [翻译-ASP.NET MVC]Contact Manager开发之旅迭代3 - 验证表单

    本翻译系列为asp.net mvc官方实例教程.在这个系列中,Stephen Walther将演示如何通过ASP.NET MVC framework结合单元测试.TDD.Ajax.软件设计原则及设计模 ...

  8. html表单验证spry,Spry验证表单教案

    <Spry验证表单教案>由会员分享,可在线阅读,更多相关<Spry验证表单教案(4页珍藏版)>请在人人文库网上搜索. 1.南阳工业学校教案授课班级授课时间教材网页制作基础教程( ...

  9. vue密码正则验证表单验证_如何在Vue中使用表单验证

    vue密码正则验证表单验证 介绍 (Introduction) Almost every web application makes use of forms in some way, as such ...

最新文章

  1. 选择问题 and 字谜游戏问题
  2. 5 年开发搞不定 MySQL !
  3. 【Android 逆向】加壳技术识别 ( 函数抽取 与 Native 化加壳的区分 | VMP 加壳与 Dex2C 加壳的区分 )
  4. python模块基础之getpass模块
  5. spring配置过滤器,报错 com.skynet.filter.GrantFilter cannot be cast to javax.servlet.Filter
  6. 查找数组中任一峰值的下标
  7. springBoot整合Listener
  8. RHEL7 -- 修改主机名
  9. Dubbo+Zookeeper 基础讲解
  10. Ibatis2.0使用说明(二)——配置篇(2)
  11. 对va_list; va_start ; va_end ;vsprintf理解(转)
  12. AD画PCB板子 基本步骤
  13. 【工作笔记001】SuperMap配准TransCAD底图
  14. 从零实现一个3D目标检测算法(1):3D目标检测概述
  15. 平板/笔记本亮度调节工具halo(WINDOWS)
  16. 计算机应用基础知识1
  17. android动态开场,Android 开场动画
  18. c语言验证信用卡 卡号介于13到16位,使用luhn算法验证信用卡号码
  19. Webpack--模块热替换(HMR)
  20. 废纸箱机器人图纸_手工制作大全:手绘纸箱机器人

热门文章

  1. 新概念英语(1-47)A cup of coffee
  2. 【MySQL】MySQL5.6新特性之Index Condition Pushdown
  3. 设计强大的云应用程序
  4. nginx压力测试和并发预估
  5. 使用forName动态加载类文件
  6. mysql中修改字段的类型
  7. 块格式化上下文(Block formatting contexts)
  8. log file sycn 概述
  9. AC日记——信息传递 洛谷 P2661 (tarjan求环)
  10. 在项目中同时使用Objective-C和Swift