Spring Bootアプリケーションでコントローラクラスを利用することで、画面遷移時の処理を定義できるが、コントローラクラス(メソッドでない)に@RequestMappingアノテーションを付与することで、このコントローラクラス共通で利用するパスを指定することができる。
今回は、コントローラクラス(メソッドでない)に@RequestMappingアノテーションを付与してみたので、そのサンプルプログラムを共有する。
前提条件
下記記事の実装が完了していること。
サンプルプログラムの構成
作成したサンプルプログラムの構成は以下の通り。

なお、上記の赤枠は、前提条件のプログラムから今回追加・変更したプログラムである。
DemoSubコントローラクラスの内容は以下の通りで、このコントローラクラス共通で利用するパスをクラスに付与した@RequestMappingアノテーションで定義し、サブ画面・初期表示画面にそれぞれ遷移するメソッドをそれぞれ用意している。
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
// サブ画面に遷移するコントローラクラス
// @RequestMappingアノテーションで、このコントローラクラス共通で
// 利用するパスを指定する
// サブ画面への遷移するパス⇒http://(ホスト名):(ポート番号)/demo/sub/toSub
@Controller
@RequestMapping("/demo/sub")
public class DemoSubController {
/**
* サブ画面に遷移する
* @return サブ画面
*/
@PostMapping("/toSub")
public String toSub(){
return "/sub/sub";
}
/**
* 初期表示画面に戻る
* @return 初期表示画面
*/
@PostMapping("/back/toIndex")
public String backToIndex(){
return "index";
}
}また、初期表示画面のHTMLは以下の通りで、「サブ画面へ」ボタンを押下するとサブ画面に遷移するようになっている。
<!DOCTYPE html>
<html lang="ja" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>初期表示画面</title>
</head>
<body>
これは初期表示画面です。
<br/><br/>
<form id="formSub" method="post" th:action="@{/demo/sub/toSub}">
<input type="submit" value="サブ画面へ" />
</form>
</body>
</html>さらに、サブ画面のHTMLはsubフォルダ下に入っている。ソースコードの内容は以下の通りで、「初期表示画面へ」ボタンを押下すると初期表示画面に遷移するようになっている。
<!DOCTYPE html>
<html lang="ja" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>サブ画面</title>
</head>
<body>
これはサブ画面です。
<br/><br/>
<form id="formSub" method="post" th:action="@{/demo/sub/back/toIndex}">
<input type="submit" value="初期表示画面へ" />
</form>
</body>
</html>その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-boot-controller-request-mapping/demo
サンプルプログラムの実行結果
サンプルプログラムの実行結果は、以下の通り。
1) Spring Bootアプリケーションを起動し、「http:// (ホスト名):(ポート番号)/」にアクセスすると、以下のように、index.htmlの画面が表示されることが確認できる。ここで「サブ画面へ」ボタンを押下する。

2) 以下のようにサブ画面が表示され、URLが「http://(ホスト名):(ポート番号)/demo/sub/toSub」であることが確認できる。ここで「初期表示画面へ」ボタンを押下する。

3) 以下のように初期表示画面が表示され、URLが「http://(ホスト名):(ポート番号)/demo/sub/back/toIndex」であることが確認できる。

要点まとめ
- コントローラクラス(メソッドでない)に@RequestMappingアノテーションを付与することで、このコントローラクラス共通で利用するパスを指定することができる。





