SpringBoot注解-第一弹@Valid

在springboot后台开发中,经常会遇到输入参数需要校验。springBoot提供强大的注解@Valid @Validate两个注解来进行参数校验。

  1. 简单校验
    如下所示为我们controller代码,接口参数为User对象,我们使用@Valid修饰了该对象表示我们要校验其成员
    @RequestMapping(value = "/test", method = RequestMethod.POST)
    public String test(@RequestBody @Valid User user, BindingResult checkResult) {
        if(checkResult.hasErrors()) {
        StringBuilder message = new StringBuilder();
        for (FieldError fieldError : checkResult.getFieldErrors()) {
            message.append(fieldError.getDefaultMessage()).append(",");
        }
        return  message.toString();
        }
        else {
            return "true";
        }
    }

User类中使用@NotNull修饰了userId与userName表明其不为null

public class User {
    @NotNull(message = "userId 不为空")
    private Integer userId;
    @NotNull(message = "userName不为空")
    private String userName;

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }
}

现在来测试一下
当我们输入:

{
	"userId":111
}

可以看到BindingResult 已经帮我们捕获到了错误:
在这里插入图片描述
结果输出为:

userName不为空,

当输入完整的数据后:

{
	"userId":111,
	"userName":"韩大帅"
}

在这里插入图片描述
结果正常没有异常出现。
除了@NotNull更多的校验方式请参见javax.validation.constraints
在这里插入图片描述
ok,那么简单的参数校验到这里就结束了,后期将为大家介绍多嵌套实体类的参数校验以及分组校验。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章