📌

クエリパラメータでHelloする(Spring Boot)

に公開

目的

URLのクエリパラメータ(?user=名前)を受け取り、その名前をテンプレートに渡して表示する、シンプルなWebページを作る

コード

@Controller
public class ExampleController {

    @GetMapping("/hello")
    public String hello(@RequestParam(name = "user", defaultValue = "World") String user, Model model) {
        model.addAttribute("name", user);
        return "hello"; // hello.html を返す
    }
}

このコードで何をしたいの?

URLに「?user=名前」というクエリパラメータをつけてアクセスすると、
その名前を使って「Hello, 名前!」と表示するページを返す、というシンプルなWebアプリです。

💡 実際の動き(例)

以下のURLにアクセスすると:

http://localhost:8080/hello?user=Suziki

「Suziki」という名前が user パラメータとして受け取られ、
テンプレートに渡されて、たとえば以下のようなHTMLが生成されます:

<p>Hello, Suziki!</p>

🔍 各アノテーションの意味を解説

@Controller

このクラスは「Webリクエストを処理する」という宣言。
Springはこのクラスの中に、リクエストを処理するメソッドがあると認識する。

@GetMapping("/hello")

/hello にGETリクエストが来たらこのメソッドを呼び出す」という意味。
つまり、ユーザーがブラウザで /hello にアクセスしたら hello() メソッドが実行される。

@RequestParam

クエリパラメータ(例:?user=Suziki)から値を取得するために使います。

  • name = "user" → パラメータ名が user
  • defaultValue = "World" → 指定がなければ "World" にする

Model model

テンプレートにデータを渡すためのオブジェクトです。
ここで model.addAttribute("name", user); と書くことで、テンプレート側で ${name} として表示できます。

📄 テンプレートファイル(hello.html)の例(Thymeleaf)

<!DOCTYPE html>
<html>
<head><title>Hello</title></head>
<body>
    <p>Hello, <span th:text="${name}">...</span>!</p>
</body>
</html>

まとめ

このコードは、

  • /hello にアクセス
  • ?user=名前 の形で名前を渡す
  • テンプレートで「Hello, 名前!」と表示

という最低限のWebアプリのサンプルです。

Discussion