您现在的位置是:首页 > 文章详情

SpringBoot ~ 数据校验

日期:2019-08-11点击:433

SpringBoot数据校验

  1. 添加pom依赖

    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>
  2. 编写实体类

    /** * @author wsyjlly * @create 2019.06.29 - 12:18 **/ @AllArgsConstructor @NoArgsConstructor @Accessors @Data @TableName(value = "message") public class Message implements Serializable { private Integer id; private Integer mid; @Size(min = 5,max = 10,message = "{message.content.size}") @NotNull(message = "{message.content.notnull}") private String content; @Size(min = 5,max = 10,message = "{message.column1.size}") @NotNull(message = "{message.column1.notnull}") @TableField(value = "column_200") private String column1; @Size(min = 5,max = 10,message = "{message.column2.size}") @NotNull(message = "{message.column2.notnull}") @TableField(value = "column_500") private String column2; @Size(min = 5,max = 10,message = "{message.column3.size}") @NotNull(message = "{message.column3.notnull}") @TableField(value = "column_5000") private String column3; }
  3. ValidationMessages.properties配置

    message.content.notnull=该字段不能为空 message.column1.notnull=该字段不能为空 message.column2.notnull=该字段不能为空 message.column3.notnull=该字段不能为空 message.content.size=内容长度过短 message.column1.size=内容长度过短 message.column2.size=内容长度过短 message.column3.size=内容长度过短

    1563358182687

  4. Controller校验

    /** * @author wsyjlly * @create 2019.07.17 - 17:34 **/ @RestController @RequestMapping("/message") public class MessageController { @PostMapping("/validate") public List validate(@RequestBody @Validated Message message, BindingResult result){ System.out.println(message); ArrayList<Object> list = new ArrayList<>(); if (result.hasErrors()) list.addAll(result.getAllErrors()); for (ObjectError item : result.getAllErrors()){ System.out.println(item); } list.add(message); return list; } }
  5. 分组校验

    • 创建分组接口

      /** * @author wsyjlly * @create 2019.07.17 - 18:29 **/ @Component public interface ValidationGroup1 {}
      /** * @author wsyjlly * @create 2019.07.17 - 18:29 **/ @Component public interface ValidationGroup2 {}
    • 实体类添加分组

      /** * @author wsyjlly * @create 2019.06.29 - 12:18 **/ @AllArgsConstructor @NoArgsConstructor @Accessors @Data @TableName(value = "message") public class Message implements Serializable { private Integer id; private Integer mid; @Size(min = 5,max = 10,message = "{message.content.size}") @NotNull(message = "{message.content.notnull}") private String content; @Size(min = 5,max = 10,message = "{message.column1.size}") @NotNull(message = "{message.column1.notnull}") @TableField(value = "column_200") private String column1; @Size(min = 5,max = 10,message = "{message.column2.size}",groups = ValidationGroup1.class) @NotNull(message = "{message.column2.notnull}") @TableField(value = "column_500") private String column2; @Size(min = 5,max = 10,message = "{message.column3.size}",groups = {ValidationGroup1.class, ValidationGroup2.class}) @NotNull(message = "{message.column3.notnull}") @TableField(value = "column_5000") private String column3; }
    • Controller校验指定分组

      /** * @author wsyjlly * @create 2019.07.17 - 17:34 **/ @RestController public class ValidateController { @PostMapping("/validate1") public List validate(@RequestBody @Validated Message message, BindingResult result){ System.out.println(message); ArrayList<Object> list = getObjects(result); list.add(message); return list; } @PostMapping("/validate2") public List validate2(@RequestBody @Validated(ValidationGroup1.class) Message message, BindingResult result){ System.out.println(message); ArrayList<Object> list = getObjects(result); list.add(message); return list; } @PostMapping("/validate3") public List validate3(@RequestBody @Validated(ValidationGroup2.class) Message message, BindingResult result){ System.out.println(message); ArrayList<Object> list = getObjects(result); list.add(message); return list; } private ArrayList<Object> getObjects(BindingResult result) { ArrayList<Object> list = new ArrayList<>(); if (result.hasErrors()) { for (ObjectError item : result.getAllErrors()) { list.add(item.getDefaultMessage()); System.out.println(item.getDefaultMessage()); } } return list; } }
原文链接:https://yq.aliyun.com/articles/713777
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章