我们这里会使用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.hibernategroupId>
<artifactId>hibernate-validatorartifactId>
<version>5.1.3.Finalversion>
dependency>
3. 在controller层使用
@PostMapping
@ResponseBody
public UserResult register(@Valid User user, BindingResult result){
try {
// 参数验证
if(result.hasErrors()){
// 收集错误信息
List 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哈哈~");
}