Java Spring Boot BasicErrorController
Spring Boot BasicErrorController 1.5.9Java Spring Boot BasicErrorController,java,spring-boot,http,spring-mvc,Java,Spring Boot,Http,Spring Mvc,Spring Boot BasicErrorController 1.5.9 @RequestMapping(produces = "text/html") public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse response) { HttpStatus status = getStatus(request); Map<String, Object
@RequestMapping(produces = "text/html")
public ModelAndView errorHtml(HttpServletRequest request,
HttpServletResponse response) {
HttpStatus status = getStatus(request);
Map<String, Object> model = Collections.unmodifiableMap(getErrorAttributes(
request, isIncludeStackTrace(request, MediaType.TEXT_HTML)));
我现在遇到的情况是,响应保持200,请求保持500。
请告知我遗漏了什么?Hey@Kondwani,请在if(status==null)之前添加一条print语句,并检查您得到的确切值是多少?据我所知,您是从HttpServletRequest参数“request”获得状态的。获取状态代码的方法是通过HttpServletResponse。我调试了这个值,它是空的-不需要在那里放置print语句。我的问题是,为什么这个Spring引导类将状态从请求中移除,而不是从响应中移除。
protected HttpStatus getStatus(HttpServletRequest request) {
Integer statusCode = (Integer) request
.getAttribute("javax.servlet.error.status_code");
if (statusCode == null) {
return HttpStatus.INTERNAL_SERVER_ERROR;
}