spring boot 2.0+ 錯誤頁面配置


如果訪問了錯誤的路徑,或者后台報錯

  • 如果沒有一個統一的頁面!
  • 或者說頁面上展示一堆報錯信息,既影響美觀,又對用戶不友好!

那么如何配置?

  • 定義 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錯誤,再次回到原生的報錯頁面

  • 希望有大佬給點意見!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM