SpringMVC后台实现数据校验 怼烎@ 2022-05-22 11:39 151阅读 0赞 我们这里会使用Hibernate-Validator框架完成数据校验 官网:[http://hibernate.org/validator/][http_hibernate.org_validator] Hibernate Validator 通过给JavaBean中的Field添加注解的方式来对字段完成校验,非常简单方便,支持以下常用注解: 注解 作用 ![这里写图片描述][70] 主要区分下@NotNull @NotEmpty @NotBlank 3个注解的区别: @NotNull 任何对象的value不能为null @NotEmpty 集合对象的元素不为0,即集合不为空,也可以用于字符串不为null @NotBlank 只能用于字符串不为null,并且字符串trim()以后length要大于0 **1.引入依赖** <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.1.3.Final</version> </dependency> **2.在POJO中添加校验规则** ![这里写图片描述][70 1] **3. 在controller层使用** @PostMapping @ResponseBody public UserResult register(@Valid User user, BindingResult result){ try { // 参数验证 if(result.hasErrors()){ // 收集错误信息 List<String> msgs = new ArrayList<>(); for (ObjectError error : result.getAllErrors()) { msgs.add(error.getDefaultMessage()); } // 参数有错,响应400 return UserResult.build(400, StringUtils.join(msgs, "|")); } // 验证通过执行注册操作 Boolean b = this.userService.register(user); if(b){ // 注册成功,响应200 return UserResult.ok(); } } catch (Exception e) { e.printStackTrace(); // 有异常,响应500,并获取错误信息 return UserResult.build(500, e.getMessage()); } // 默认响应500,及信息 return UserResult.build(500, "O(∩_∩)O哈哈~"); } [http_hibernate.org_validator]: http://hibernate.org/validator/ [70]: /images/20220522/477261c03cf0435f901a4e58b768d491.png [70 1]: /images/20220522/95367b52300e4982b4ad819727f0d1fc.png
还没有评论,来说两句吧...