SpringMVC后台实现数据校验

我们这里会使用Hibernate-Validator框架完成数据校验
官网:http://hibernate.org/validator/

Hibernate Validator 通过给JavaBean中的Field添加注解的方式来对字段完成校验,非常简单方便,支持以下常用注解:
注解 作用
这里写图片描述
主要区分下@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中添加校验规则
这里写图片描述

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哈哈~");
    }

猜你喜欢

转载自blog.csdn.net/shawemou/article/details/80782795
今日推荐