下面列出了怎么用org.springframework.boot.web.error.ErrorAttributeOptions的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* html
*
* @param request HttpServletRequest
* @param response HttpServletResponse
* @return ModelAndView
*/
@RequestMapping(produces = MediaType.TEXT_HTML_VALUE)
public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse response) {
HttpStatus httpStatus = getStatus(request);
int code = httpStatus.value();
// Map<String, Object> errorAttributes = getErrorAttributes(request, true);
Map<String, Object> errorAttributes = getErrorAttributes(request, ErrorAttributeOptions.defaults());
LOGGER.info("status={},exception={}", code, errorAttributes);
code = RestControllerAdviceHandler.codeSwitch(code);
httpStatus = HttpStatus.valueOf(code);
// Map<String, Object> model = Collections.unmodifiableMap(getErrorAttributes(
// request, true));
Map<String, Object> model = Collections.unmodifiableMap(getErrorAttributes(request, ErrorAttributeOptions.defaults()));
ModelAndView modelAndView = resolveErrorView(request, response, httpStatus, model);
return (modelAndView == null ? new ModelAndView(code + "", model, httpStatus) : modelAndView);
}
/**
* Error handler.
*
* @return Unauthorized (401), Forbidden (403) or Not Found (404) with no body.
*/
@RequestMapping(value = "/error", method = {RequestMethod.GET, RequestMethod.POST, RequestMethod.PUT,
RequestMethod.DELETE, RequestMethod.HEAD, RequestMethod.OPTIONS, RequestMethod.PATCH, RequestMethod.TRACE})
public ResponseEntity<?> error() {
Map<String, Object> requestErrorAttributes = errorAttributes.getErrorAttributes(
new ServletWebRequest(request), ErrorAttributeOptions.defaults());
HttpStatus errorStatus = HttpStatus.valueOf((Integer) requestErrorAttributes.get("status"));
if (HttpStatus.UNAUTHORIZED.equals(errorStatus) || HttpStatus.FORBIDDEN.equals(errorStatus)) {
session.invalidate();
return new ResponseEntity<>(errorStatus);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
/**
* json
*
* @param request HttpServletRequest
* @param response HttpServletResponse
* @return ResponseEntity<FailureEntity>
*/
@RequestMapping
@ResponseBody
public ResponseEntity<FailureEntity> error(HttpServletRequest request, HttpServletResponse response) {
HttpStatus httpStatus = getStatus(request);
int code = httpStatus.value();
Map<String, Object> errorAttributes = getErrorAttributes(request, ErrorAttributeOptions.defaults());
LOGGER.info("status={},exception={}", code, errorAttributes);
code = RestControllerAdviceHandler.codeSwitch(code);
httpStatus = HttpStatus.valueOf(code);
return new ResponseEntity<>(new FailureEntity((String) errorAttributes.get("error"), httpStatus.value()), httpStatus);
}