|
@@ -23,11 +23,17 @@ import org.hswebframework.web.AuthorizeForbiddenException;
|
|
import org.hswebframework.web.BusinessException;
|
|
import org.hswebframework.web.BusinessException;
|
|
import org.hswebframework.web.NotFoundException;
|
|
import org.hswebframework.web.NotFoundException;
|
|
import org.hswebframework.web.controller.message.ResponseMessage;
|
|
import org.hswebframework.web.controller.message.ResponseMessage;
|
|
|
|
+import org.hswebframework.web.validate.SimpleValidateResults;
|
|
import org.hswebframework.web.validate.ValidateResults;
|
|
import org.hswebframework.web.validate.ValidateResults;
|
|
import org.hswebframework.web.validate.ValidationException;
|
|
import org.hswebframework.web.validate.ValidationException;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.http.HttpStatus;
|
|
import org.springframework.http.HttpStatus;
|
|
|
|
+import org.springframework.validation.BindingResult;
|
|
|
|
+import org.springframework.validation.BindingResultUtils;
|
|
|
|
+import org.springframework.validation.FieldError;
|
|
|
|
+import org.springframework.validation.ObjectError;
|
|
|
|
+import org.springframework.web.bind.MethodArgumentNotValidException;
|
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import org.springframework.web.bind.annotation.ResponseStatus;
|
|
import org.springframework.web.bind.annotation.ResponseStatus;
|
|
@@ -95,6 +101,19 @@ public class RestControllerExceptionTranslator {
|
|
return ResponseMessage.error(404, exception.getMessage());
|
|
return ResponseMessage.error(404, exception.getMessage());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @ExceptionHandler(MethodArgumentNotValidException.class)
|
|
|
|
+ @ResponseStatus(HttpStatus.BAD_REQUEST)
|
|
|
|
+ @ResponseBody
|
|
|
|
+ ResponseMessage handleException(MethodArgumentNotValidException e) {
|
|
|
|
+ SimpleValidateResults results = new SimpleValidateResults();
|
|
|
|
+ e.getBindingResult().getAllErrors()
|
|
|
|
+ .stream()
|
|
|
|
+ .filter(FieldError.class::isInstance)
|
|
|
|
+ .map(FieldError.class::cast)
|
|
|
|
+ .forEach(fieldError -> results.addResult(fieldError.getField(), fieldError.getDefaultMessage()));
|
|
|
|
+
|
|
|
|
+ return ResponseMessage.error(400, results.getResults().size() == 0 ? e.getMessage() : results.getResults().get(0).getMessage()).data(results.getResults());
|
|
|
|
+ }
|
|
// @ExceptionHandler(Throwable.class)
|
|
// @ExceptionHandler(Throwable.class)
|
|
// @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
|
|
// @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
|
|
// @ResponseBody
|
|
// @ResponseBody
|