📌
クエリパラメータで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