本文介紹了Spring Boot不顯示自定義錯誤頁的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我將spring-boot-starter-thymeleaf
依賴項添加到使用Spring Boot 2.3.1.RELEASE的項目中,并將error.html
放在src/main/resources/templates
文件中,名為error.html and other custom error pages inside
src/main/resource/plates/error`,如下圖所示:
并在Application.yml:
中添加此配置
server:
error:
whitelabel:
enabled: false
并通過將@SpringBootApplication(exclude = {ErrorMvcAutoConfiguration.class})
添加到Application
類中來排除ErrorMvcAutoConfiguration
。
但是,不幸的是,當錯誤發生時,我在下面的頁面上看到了這個,例如404錯誤!
如何解決此問題?我也在谷歌上搜索了一下,但沒有找到任何可以幫助的東西。
推薦答案
嘗試使用WebServerFactoryCustomizer
:
@Configuration
public class WebConfig implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {
@Override
public void customize(ConfigurableServletWebServerFactory factory) {
factory.addErrorPages(
new ErrorPage(HttpStatus.FORBIDDEN, "/403"),
new ErrorPage(HttpStatus.NOT_FOUND, "/404"),
new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500"));
}
}
和錯誤控制器:
@Controller
public class ErrorController {
@GetMapping("/403")
public String forbidden(Model model) {
return "error/403";
}
@GetMapping("/404")
public String notFound(Model model) {
return "error/404";
}
@GetMapping("/500")
public String internal(Model model) {
return "error/500";
}
@GetMapping("/access-denied")
public String accessDenied() {
return "error/access-denied";
}
}
我有相同的結構,它對我有效:
示例:Customize the Error Messages
ps:在我的application.yml
中,我沒有任何用于錯誤處理的屬性
這篇關于Spring Boot不顯示自定義錯誤頁的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,