Spring Boot 基本

Spring Bootアプリケーションでコントローラクラスに@RequestMappingアノテーションを付与してみた

Spring Bootアプリケーションでコントローラクラスを利用することで、画面遷移時の処理を定義できるが、コントローラクラス(メソッドでない)に@RequestMappingアノテーションを付与することで、このコントローラクラス共通で利用するパスを指定することができる。

今回は、コントローラクラス(メソッドでない)に@RequestMappingアノテーションを付与してみたので、そのサンプルプログラムを共有する。

前提条件

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

IntelliJ IDEA上でGradleを使ってWeb画面のSpring Bootプロジェクトを作成してみたSpring Bootのプロジェクトを新規作成を「IntelliJ IDEA」のメニューから実施しようとしたところ、無料の「Commun...

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

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

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



「CODE×CODE」は、需要の高い技術(AWS, Python等)を習得できるプログラミングスクールスクールだった近年、さまざまな会社でクラウド(特にIaaSやPaaSのパブリッククラウド)の需要が非常に高まっていて、クラウドサービスによるシステム開...

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

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

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

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

3) 以下のように初期表示画面が表示され、URLが「http://(ホスト名):(ポート番号)/demo/sub/back/toIndex」であることが確認できる。
サンプルプログラムの実行結果_3

要点まとめ

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