在springboot后台开发中,经常会遇到输入参数需要校验。springBoot提供强大的注解@Valid @Validate两个注解来进行参数校验。
- 简单校验
如下所示为我们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,那么简单的参数校验到这里就结束了,后期将为大家介绍多嵌套实体类的参数校验以及分组校验。