|
@@ -5,6 +5,9 @@ import java.util.Set;
|
|
import javax.validation.ConstraintViolation;
|
|
import javax.validation.ConstraintViolation;
|
|
import javax.validation.ConstraintViolationException;
|
|
import javax.validation.ConstraintViolationException;
|
|
|
|
|
|
|
|
+import org.springframework.validation.BindException;
|
|
|
|
+import org.springframework.validation.BindingResult;
|
|
|
|
+import org.springframework.validation.FieldError;
|
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
|
|
|
|
|
@@ -17,6 +20,7 @@ public class RequestValidateExceptionHandler {
|
|
//处理请求参数格式错误 @RequestParam上validate失败后抛出的异常是javax.validation.ConstraintViolationException
|
|
//处理请求参数格式错误 @RequestParam上validate失败后抛出的异常是javax.validation.ConstraintViolationException
|
|
@ExceptionHandler(ConstraintViolationException.class)
|
|
@ExceptionHandler(ConstraintViolationException.class)
|
|
public RespVO constraintViolationExceptionHandler(ConstraintViolationException e) {
|
|
public RespVO constraintViolationExceptionHandler(ConstraintViolationException e) {
|
|
|
|
+ //e.printStackTrace();
|
|
Set<ConstraintViolation<?>> constraintViolations=e.getConstraintViolations();
|
|
Set<ConstraintViolation<?>> constraintViolations=e.getConstraintViolations();
|
|
StringBuilder error=new StringBuilder();
|
|
StringBuilder error=new StringBuilder();
|
|
for(ConstraintViolation<?> itm : constraintViolations) {
|
|
for(ConstraintViolation<?> itm : constraintViolations) {
|
|
@@ -26,4 +30,15 @@ public class RequestValidateExceptionHandler {
|
|
//jdk8 写法:String message = e.getConstraintViolations().stream().map(ConstraintViolation::getMessage).collect(Collectors.joining());
|
|
//jdk8 写法:String message = e.getConstraintViolations().stream().map(ConstraintViolation::getMessage).collect(Collectors.joining());
|
|
return RespVOBuilder.error(error.toString());//
|
|
return RespVOBuilder.error(error.toString());//
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @ExceptionHandler(BindException.class)
|
|
|
|
+ public RespVO validationExceptionHandler(BindException e) {
|
|
|
|
+ //e.printStackTrace();
|
|
|
|
+ BindingResult bindingResult = e.getBindingResult();
|
|
|
|
+ StringBuilder error=new StringBuilder();
|
|
|
|
+ for (FieldError fieldError : bindingResult.getFieldErrors()) {
|
|
|
|
+ error.append(fieldError.getDefaultMessage()+";");
|
|
|
|
+ }
|
|
|
|
+ return RespVOBuilder.error(error.toString());
|
|
|
|
+ }
|
|
}
|
|
}
|