我想在SpringMvc(Spring-boot版本1.5.1)中爲無效URL創建一個自定義錯誤頁面。在彈簧引導中定製404錯誤頁
爲了禁用默認的白色標籤的錯誤頁面,我有:
application.properties
spring.thymeleaf.cache=false
server.error.whitelabel.enabled=false
spring.mvc.throw-exception-if-no-handler-found=true
spring.resources.add-mappings=false
我的異常處理程序是:
RestResponseEntityExceptionHandler.java
@ControllerAdvice
public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
public RestResponseEntityExceptionHandler() {
super();
}
@Override
protected ResponseEntity<Object> handleNoHandlerFoundException(NoHandlerFoundException ex,
HttpHeaders headers, HttpStatus status, WebRequest request) {
logger.error("404 Status Code", ex);
final GenericResponse bodyOfResponse = new GenericResponse(messages.getMessage("No such page", null, request.getLocale()), "NoHandlerFound");
return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.NOT_FOUND, request);
}
}
這在原理上起作用。如果我去一個無效的URL在瀏覽器中,我得到一個JSON它看起來像:
{「消息」:「沒有這樣的網頁」,「錯誤」:「NoHandlerFound」}
相反的JSON響應我想展示一個合適的HTML視圖(類似於白標籤頁)。這應該是一個可以替換「消息」字符串的模板。我如何去渲染這個視圖?
我在使用Spring MVC與thymeleaf,並試圖把和的error.html頁面404.html在/資源/公/錯誤/中/資源/模板和/資源/模板/錯誤/但顯然他們無法找到。還有什麼需要做這項工作? – user1583209
從您的屬性文件中刪除server.error.whitelabel.enabled = false。 – jmw5598
工作。現在我只需要弄清楚如何將請求url導入到視圖中。 – user1583209