Spring MVC Web.xmlでエラーページを表示

Spring MVCのWeb.xmlのerror-pageタグでエラーページを表示するサンプルです。
(確認環境:Spring Boot 2.5,JDK 11)

目次

サンプル Web.xmlのerror-pageタグでエラーページを表示する
  設定ファイル(web.xml)
  コントローラのクラス(MainController.java)
  エラーのファイル(index.html)

Web.xmlのerror-pageタグでエラーページを表示する

Web.xmlにerror-pageタグを指定しエラー発生時にエラー画面を表示します。

以下の存在しないページを指定すると404エラーのページが表示されます。
http://localhost:8881/spring-mvc-errorpage/abc1

以下のURLを指定するとエラーが発生しエラーのページが表示されます。
http://localhost:8881/spring-mvc-errorpage/abc

githubにコードがあります。
https://github.com/ut23405/spring5/tree/master/spring-mvc-errorpage

設定ファイル(web.xml)

	<error-page>
		<error-code>404</error-code>
		<location>/testNotFound</location>
	</error-page>
	<error-page>
		<exception-type>java.lang.Exception</exception-type>
		<location>/testException</location>
	</error-page>

2行目は、ファイルが存在しない404エラーが発生したときにキャッチします。
3行目のURLが投げられます。
6行目のタグはexception-typeになっています。指定した例外が発生したときにキャッチします。
7行目のURLが投げられます。

 

コントローラのクラス(MainController.java)

package com.example.test1;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

/**
 * http://localhost:8881/spring-mvc-errorpage/abc
 */
@Controller
public class MainController {

	@GetMapping("/abc")
	public String hello() {
		int i = 1;
		if (i == 1) {
			throw new NullPointerException();
		}
		return "/test1/index";
	}
	@GetMapping("/testNotFound")
	public String test1() {
		return "/error/test404";
	}
	@GetMapping("/testException")
	public String test2() {
		return "/error/testError";
	}
}

16行目は確認のためエラーを発生させています。
20,24行目は、Web.xmlでいったんエラーをキャッチした後に、とんできます。
その後、22,26行目で、指定のエラーページを表示します。

 

エラーのファイルhtmlファイル

test404.html

<!DOCTYPE html>
<html >
  <head>
    <meta charset="utf-8" />
    <title>test</title>
  </head>
  <body>
    <p>404エラーページ</p>
  </body>
</html>

testError.html

<html>
  <head>
    <meta charset="utf-8" />
    <title>test</title>
  </head>
  <body>
    <p>Exceptionエラーページ</p>
  </body>
</html>

関連の記事

SpringBoot 例外のサンプル(ControllerAdvice)

△上に戻る