maven引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
在controller请求的参数前加上@Vaild注解
@PostMapping("/login")
public String login(@RequestBody @Valid UmsMemberLoginParamDTO umsMemberLoginParamDTO) {
String res ="error";
boolean result =umsMemberService.login(umsMemberLoginParamDTO);
if (result) {
res ="success";
}
return res;
}
在实体类或者传递的参数中增加要进行的验证
![](https://img.haomeiwen.com/i16784830/7bafbbf8561ff2eb.png)
新增一个类,添加@ControllerAdvice注解
继承ResponseEntityExceptionHandler
并重写handleMethodArgumentNotValid方法
@ControllerAdvice
public class ValidateHandler extends ResponseEntityExceptionHandler {
@Override
protected ResponseEntity handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
StringBuilder sb=new StringBuilder();
for(FieldError fieldError:ex.getFieldErrors()){
String defaultError = fieldError.getDefaultMessage();
sb.append("" + defaultError);
break;
}
return new ResponseEntity<>(ResultWrapper.getFailBuilder().code(333).msg(sb.toString()).build(), HttpStatus.OK);
}
}
这时候当postman请求的时候,如果对应字段不输入则返回
![](https://img.haomeiwen.com/i16784830/0331c8bab05cd1b4.png)
网友评论