Spring-Web中获取HttpServletRequest对象
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = Objects.requireNonNull(attributes).getRequest();
SpringMvc统一异常处理 —— @ControllerAdvice
@ControllerAdvice
@Slf4j
public class DemoExceptionHandler {
private static final String DEFAULT_ERROR_VIEW = "error";
/**
* 统一 json 异常处理
*
* @param exception JsonException
* @return 统一返回 json 格式
*/
@ExceptionHandler(value = JsonException.class)
@ResponseBody
public ApiResponse jsonErrorHandler(JsonException exception) {
log.error("【JsonException】:{}", exception.getMessage());
return ApiResponse.ofException(exception);
}
/**
* 统一 页面 异常处理
*
* @param exception PageException
* @return 统一跳转到异常页面
*/
@ExceptionHandler(value = PageException.class)
public ModelAndView pageErrorHandler(PageException exception) {
log.error("【DemoPageException】:{}", exception.getMessage());
ModelAndView view = new ModelAndView();
view.addObject("message", exception.getMessage());
view.setViewName(DEFAULT_ERROR_VIEW);
return view;
}
利用commons-lang3解析可能存在多种日期格式的日期
private static String[] possibleDateFormats = {
"yyyy-MM-dd HH:mm:ss",
"yyyy-MM-dd",
"HH:mm:ss",
"yyyy/M/d HH:mm:ss"
};
public static Date parseDate(String inputDate) {
try {
return DateUtils.parseDate(inputDate, possibleDateFormats);
} catch (ParseException e) {
log.warn("#parseDate# 解析日期{},发生错误", inputDate, e);
}
return new Date();
}