springMVC数据校验

发布时间 2023-10-02 19:10:16作者: 空嘘一场

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

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>