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>
関連の記事