Categories: SpringBoot

【Spring Boot】GETリクエストパラメータの値を画面に表示する方法

この記事ではURLのGETリクエストパラメータを受け取ってブラウザに表示する仕組みを説明します。

プロジェクトの作成

VSCodeでSpringBootのMavenプロジェクトを作成します。
手順は以下の記事を参照。

用意するソース

新規でSpringBootプロジェクトを作成したら、以下のソースを用意して実行できる状態にします。

コントローラー(SimpleCtrl.java)

SimpleCtrl.java

@Controller
public class SimpleCtrl {

    @GetMapping("/")
    public String hello() {
        return "hello"; //hello.htmlを表示する。
    }

    @GetMapping("/hello")
    public String hello(@RequestParam("apple") String msg,Model model){
        model.addAttribute("sample", msg);
        return "hello"; //hello.htmlを表示する。
    } 
}

ページ(hello.html)

hello.html

<body>
    <h2>HelloWorld</h2>
    <p>hello.htmlを表示しています。</p>
    <p th:text="${sample}"</p>
</body>

実行結果

上記のソースを実行してブラウザでhttp://localhost:8080/hello?apple=100にアクセスすると以下のように表示されます。

解説

@RequestParam("apple") String msgは、URL中の「apple=100」という組み合わせを受け取ります。
model.addAttribute("sample", msg);hello.html側で定義した変数${sample}msgを代入することを意味します。

複数のGET値を受け取る方法

ブラウザでhttp://localhost:8080/hello2?apple=100&lemon=200と複数のGET値を渡した場合は以下のように記述します。

Java

    @GetMapping("/hello2")
    public String hello2(@RequestParam("apple") String msg,
                        @RequestParam("lemon") String msg2,
                        Model model){
        String result = msg + msg2;
        model.addAttribute("sample", result);
        return "hello"; //hello.htmlを表示する。
    } 

@RequestParamの書き方2選

@RequestParamの書き方はいろいろな書き方ができます。

GETリクエストの名前と変数名を別々にしたい場合

GETリクエストの名前と変数名を別々にしたい場合は、@RequestParam("apple") String msgのように記述します。

GETリクエストの名前と変数名を同一にしたい場合

GETリクエストの名前と変数名を同一にしたい場合は、
@RequestParam("apple") String apple

@RequestParam String appleに短縮できます。以下がそのサンプルです。

Java

    @GetMapping("/hello2")
    public String hello2(@RequestParam String apple,
                        @RequestParam String lemon,
                        Model model){
        String result = apple + lemon;
        model.addAttribute("sample", result);
        return "hello"; //hello.htmlを表示する。
    } 

@PathVariableでGetリクエストを受け取る

@PathVariableを使用して、URLパスからデータを取得するが出来ます。

Java

@Controller
public class SimpleCtrl {

    @GetMapping("/")
    public String hello() {
        return "hello"; //hello.htmlを表示する。
    }

    @GetMapping("/hello/{fruit}")
    public String hello(@PathVariable String fruit,
        Model model){

        model.addAttribute("sample", fruit);
        return "hello"; //hello.htmlを表示する。
    }
}

実行結果


以上で記事の解説はお終い!

もっとJavaやSpringを勉強したい方にはUdemyがオススメ!同僚に差をつけよう!

issiki_wp