如果訪問了錯誤的路徑,或者后台報錯
- 如果沒有一個統一的頁面!
- 或者說頁面上展示一堆報錯信息,既影響美觀,又對用戶不友好!
那么如何配置?
- 定義
ErrorPageConfig
,配置錯誤狀態與對應訪問路徑
@Component
public class ErrorPageConfig implements ErrorPageRegistrar {
private static final Logger logger = LoggerFactory.getLogger(ErrorPageConfig.class);
@Override
public void registerErrorPages(ErrorPageRegistry errorPageRegistry) {
//1、按錯誤的類型顯示錯誤的網頁
//錯誤類型為404,找不到網頁的,默認顯示404.html網頁
ErrorPage e404 = new ErrorPage(HttpStatus.NOT_FOUND, "/error/404");
//錯誤類型為500,表示服務器響應錯誤,默認顯示500.html網頁
ErrorPage e500 = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error/500");
errorPageRegistry.addErrorPages(e404, e500);
}
}
- 定義控制器,專門用於
ErrorPageConfig
跳轉路徑
@Controller
@RequestMapping("/error")
public class ErrorController {
/**
* 404頁面
*/
@GetMapping(value = "/404")
public String error_404() {
return "comm/error_404";
}
/**
* 500頁面
*/
@GetMapping(value = "/500")
public String error_500() {
return "comm/error_500";
}
}
- 在comm文件夾 下新建頁面
- 訪問不存在的地址,或者后台報錯,即可展示友好頁面
參考鏈接找不到了。
其實,還有bug。
-
比如訪問 http://localhost:9090/admin/1 沒有直接報404,反而 真的去找了這個路徑
-
與后台admin開頭的要跳轉到登錄頁面攔截器發生沖突,導致500錯誤
-
比如直接訪問 http://localhost:9090/error ,會報一個909錯誤,再次回到原生的報錯頁面
-
希望有大佬給點意見!