Spring Boot 基本

HTTPステータスが404エラーの場合に独自エラー画面に遷移するようにしてみた

以前、HTTPステータスが404エラーの場合に、404.htmlに遷移するようなプログラムを作成したことがあったが、今回は、HTTPステータスが404エラーの場合に、404.html以外の画面に遷移するよう修正してみたので、そのサンプルプログラムを共有する。

前提条件

下記記事の実装が完了していること。

Spring Bootで特定のHTTPステータスコードが返却された場合に独自エラー画面を表示してみたSpringフレームワークでは、特定のHTTPステータスコード(例:404(Not Found))が返却された場合に独自のエラー画面に遷...

サンプルプログラムの作成

作成したサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成
なお、上記の赤枠は、前提条件のプログラムから追加/変更したプログラムである。

404エラーが発生した場合に、パス「/notFoundNew」に遷移するよう設定するよう、以下のクラスを追加している。

また、パス「/notFoundNew」の指定を、以下のコントローラクラスに追加している。

さらに、パス「/notFoundNew」の画面遷移先となるHTMLの内容は、以下の通り。

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-boot-http-error-original/demo



サンプルプログラムの実行結果

サンプルプログラムの実行結果は、以下の通り。

1) Spring Bootアプリケーションを起動し、「http:// (ホスト名):(ポート番号)」とアクセスすると、以下のように、初期表示画面が表示されることが確認できるので、「このボタンを押すと404エラーが発生します」ボタンを押下する。
サンプルプログラムの実行結果_1

2) 以下のように、画面「404new.html」に遷移することが確認できる。
サンプルプログラムの実行結果_2_1

なお、変更前の遷移先画面(404.html)の表示内容は、以下の通り。
サンプルプログラムの実行結果_2_2

要点まとめ

  • HTTPステータスが404エラーの場合に、404.html以外の画面に遷移するようにするには、ConfigurableServletWebServerFactoryインタフェースを型定義にもつ、WebServerFactoryCustomizerインタフェースを実装したクラスの、customizeメソッド内で、エラーページ設定を行えばよい。