使用@Validated有时不返回前端错误信息的配置处理
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
@Slf4j
@RestControllerAdvice
public class ExceptionConfig {
@ResponseStatus(HttpStatus.OK)
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseBody
public Map<String,Object> exceptionHandler(MethodArgumentNotValidException ex) {
log.error("异常信息:{}", ex.getMessage());
//获取Servlet容器
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
//获取request请求
HttpServletRequest request = attributes.getRequest();
Map<String,Object> result=new HashMap<>();
result.put("status",400);
result.put("msg",ex.getBindingResult().getFieldError().getDefaultMessage());
return result;
}
}