bean示例:
public class User {
/**
* 昵称
*/
@NotBlank(message = "昵称不能为空")
private String nickName;
/**
* 密码
*/
@NotBlank(message = "密码不能为空")
private String password;
}
使用示例:
@PostMapping(value="/updateUser")
public Object updateUser(@RequestBody @Valid User user){
user.setUserId(getLoginUser().getUserId());
userService.updateUser(user);
return SUCCESS;
}
异常统一处理:
/**
* bean验证异常 requestParam参数
*/
@ExceptionHandler(BindException.class)
@ResponseBody
public Object validatedMethodArgumentNotValidException(BindException e)
{
String message = e.getBindingResult().getFieldError().getDefaultMessage();
return dealHandle(message);
}
/**
* bean验证异常 requestbody参数
*/
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseBody
public Object validatedMethodArgumentNotValidException(MethodArgumentNotValidException e)
{
String message = e.getBindingResult().getFieldError().getDefaultMessage();
return dealHandle(message);
}
@Validated 是在org.springframework.validation.annotation.Validated包下,对非bean参数的验证。
@Validated
public class UserController{
/**
* 发送验证码
* @param phone
* @return
*/
@GetMapping(value="/sendCode")
public Object sendCode(@NotBlank(message="手机号不能为空") String phone){
userService.sendCode(phone);
return SUCCESS;
}
}
异常统一处理:
/**
* 非bean参数验证异常 requestParam参数
*/
@ExceptionHandler(ConstraintViolationException.class)
@ResponseBody
public Object validatedConstraintViolationExceptionException(ConstraintViolationException e)
{
String message = e.getConstraintViolations().iterator().next().getMessage();
return dealHandle(message);
}