java 后端校验_java 后端参数验证 @Valid和 @Validated

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);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值