postmapping注解参数说明_SpringMVC参数统一验证方法
可以在Controller方法中的参数前加注解 @ValidatedUsersController.java// 参数通过json,请求体@PostMapping("/saveUsers")public Object saveUsers(@RequestBody @Validated Users users) {return users ;}// 参数通过表单的方式 key=value@PostM
·
可以在Controller方法中的参数前加注解 @Validated
UsersController.java
// 参数通过json,请求体@PostMapping("/saveUsers")public Object saveUsers(@RequestBody @Validated Users users) {return users ;}// 参数通过表单的方式 key=value@PostMapping("/saveUsers")public Object saveUsers(@Validated Users users) {return users ;}
Users.java
@Datapublic class Users {@NotEmpty(message = "姓名不能为空")private String name ;@NotEmpty(message = "性别不能为空")private String sex ;@NotNull(message = "年龄不能为空")private Integer age ;}
这里用到的注解来自JSR303
下面一段文字及图片是从网络上摘取的
JSR-303
JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。
定义全局异常处理
@RestControllerAdvicepublic class ControllerAdvice { // 这是拦截表单参数; Content-Type: application/x-www-form-urlencoded@ResponseStatus(HttpStatus.OK)@ExceptionHandler({BindException.class})public Object bindException(BindException e) { BindingResult bindingResult = e.getBindingResult() ; return Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage() ;} // 这是拦截通过body体为json数据;Content-Type: application/json@ResponseStatus(HttpStatus.OK)@ExceptionHandler({MethodArgumentNotValidException.class})public Object bindException(MethodArgumentNotValidException e) { BindingResult bindingResult = e.getBindingResult() ; return Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage() ;}}
这里我没有对返回结果做统一处理,直接就是返回错误信息。
更多推荐
已为社区贡献3条内容
所有评论(0)