首页 > 其他分享 >springMVC数据校验

springMVC数据校验

时间:2023-10-02 19:11:16浏览次数:37  
标签:String springMVC 18 校验 private Pattern message 数据

应用程序在执行业务逻辑前,必须通过数据校验保证接收的输入数据时正确合法的。

1.JRS303

 

 

2.@Valid 校验注解(获取校验结果)

DepositDto.java

 1 @Data
 2 @AllArgsConstructor
 3 @NoArgsConstructor
 4 public class DepositDto {
 5     @NotEmpty(message = "账号不能为空")
 6     private String account;//账号
 7     
 8     @Pattern(regexp = "\\w{4,6}",message = "用户名为4~6个字符")
 9     private String name;//用户名
10     
11     @Pattern(regexp = "\\s{6,12}",message = "密码为6~12个非空字符")
12     private String password;//密码
13     
14     @Pattern(regexp = "\\d{18}",message = "身份证为18位数字")
15     private String id;//身份证
16     
17     @NotBlank(message = "不能为空")
18     private String amount;//金额
19     
20     @Pattern(regexp = "1|2|3|4|5",message = "存款年限为1~5年")
21     private String duration;//年限
22     
23     @DateTimeFormat(pattern = "yyyy-MM-dd")
24     private Date date;//日期
25 
26     private String phone;//电话
27 }

 

ValidatorController.java
 1 /**
 2  * @Author hxy
 3  * @Description 数据校验页面控制类
 4  * @Date 2023/9/14 10:24
 5  * @Version 1.0
 6  */
 7 @Controller
 8 public class ValidatorController {
 9     /**
10      * @Valid:用于启动校验
11      * BindingResult:封装校验的结果
12      * @param depositDto
13      *
14      * @return {@link String}
15      */
16     @RequestMapping("/validator.do")
17     public String validator(@Valid @ModelAttribute("msg") DepositDto depositDto,BindingResult bindingResult){
18         //判断数据校验结果
19         if (bindingResult.hasErrors()){
20             //打印校验错误的数量
21             System.out.println("校验错误数量:"+bindingResult.getErrorCount());
22             //获取校验错误的列表
23             List<FieldError> fieldErrors = bindingResult.getFieldErrors();
24             //遍历错误列表
25             System.out.println("校验错误信息:");
26             for (FieldError fieldError:fieldErrors){
27                 System.out.println(fieldError);
28             }
29         }
30         System.out.println(depositDto);
31         return "result";
32     }
33 }

 

1 <%--    显示校验错误信息--%>
2 <form:form modelAttribute="msg">
3     <form:errors path="*" cssStyle="color: red"></form:errors>
4 </form:form>

 

 

 

 

标签:String,springMVC,18,校验,private,Pattern,message,数据
From: https://www.cnblogs.com/hxysg/p/17740328.html

相关文章

  • SQLite学习笔记——创建数据库和SELECT,INSERT语句
    SQLite创建数据库我们可以直接使用sqlite3DatabaseName.db来创建数据库,这时候我们就会发现同一目录下出现了对应的.db文件或者我们可以先启动sqlite3然后在里面使用点命令.openDatabaseName.db来创建数据库,如果已经存在对应的数据库,那么我们默认就会打开该数据库。......
  • [数据结构和算法] 堆/优先队列的实现
    预备知识:完全二叉树可以用数组表示:从下标0开始存储数据:左子节点=2*父节点+1,右子节点=2*父节点+2;从下标1开始存储数据:左子结点=2*父节点,右子节点=2*父节点+1;堆:大根堆:父节点的值大于等于左右子节点的值;小根堆:父节点的值小于等于左右子节点的值;......
  • 【数据结构】2.栈和队列
    1.栈1.1栈的抽象父类#pragmaoncetemplate<classT>classStack{public://析构函数virtual~Stack(){}//栈是否为空virtualboolempty()const=0;//栈的大小virtualintsize()const=0;//栈顶元素virtualT&top()=0......
  • 自定义数据类型和数据类型别名
    自定义数据类型和数据类型别名代码//example.gopackagetestimport"fmt"funcTestFunction(){ fmt.Println("自定义类型") //自定义类型mesType,它是uint16的别名 //注意:虽然mesType是uint16的别名,但是二者仍是不同类型,不能够 //相互赋值和比较,需要进行类型转换 //......
  • 基础数据结构:数组实现的单链表(静态链表)、双链表
    1、单链表(静态链表)以AcWing.826为例,题目要求如下:实现一个单链表,链表初始为空,支持三种操作:向链表头插入一个数;删除第k个插入的数后面的数;在第k个插入的数后插入一个数。现在要对该链表进行M次操作,进行完所有操作后,从头到尾输出整个链表。注意:题目中第k个插入的数并不是指当......
  • 解析用户消费记录(数据分析三剑客综合使用)
    博客地址:https://www.cnblogs.com/zylyehuo/开发环境anaconda集成环境:集成好了数据分析和机器学习中所需要的全部环境安装目录不可以有中文和特殊符号jupyteranaconda提供的一个基于浏览器的可视化开发工具importnumpyasnpimportpandasaspdfrompanda......
  • 用sql语句查询出表结构,在结果就能看到数据库所有表的结构,这个时候只要全选,然后右击出
    SELECT表名=CaseWhenA.colorder=1ThenD.nameElse''End,表说明=CaseWhenA.colorder=1Thenisnull(F.value,'')Else''End,字段序号=A.colorder,字段名=A.name,字段说明=isnull(G.[value],......
  • 【大数据】Vmare配置版本
    第一步:配置VMware打开:编辑->虚拟网络编辑器->更改设置VMnet8->子网IP:192.168.88.0NAT设置->网关ip:192.168.88.2理解: VMnet8是VMwareWorkstation中的一个虚拟网络,其配置的子网IP地址为192.168.88.0,NAT(网络地址转换)设置的网关IP为192.16......