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