プログラミング Java

【Spring+Thymeleaf】リクエストパラメーターをControllerで受け取る方法

投稿日:

概要

Spring+Thymeleafにおいて、リクエストパラメーターをControllerで受け取るパターンを紹介します。

リクエストパラメーターのパターンは以下の通りです。
・単一(inputタグのType=text, number等を想定)
・複数(複数のinputタグ、またはselectタグを想定)
・単一 & 複数(組み合わさったパターン)

実装例

単一(inputタグのType=text, number等を想定)

@RequestParam

@RequestParamでフィールド名を指定してパラメータを受け取る方法です。
リクエストされるパラメータが少ない(1~2個くらいの)画面からのリクエストで使用される印象があります。

HTML

 
Controller

 

@PathVariable

@PathVariableはパスパラメータでリクエストされる場合に使用します。
WebAPIの実装じおいてパスパラメータを指定するケースで使用される印象があります。

リクエスト
curl http://localhost/search/hoge

Controller

他の指定方法と異なり、URLはパラメータを含める構造になっていることに注意すること。
 

複数(複数のinputタグ、またはselectタグを想定)

@RequestParam Map<K, V>

画面から単一(type=text等)のリクエストパラメーターを複数個受け取る場合に使用される印象です。

HTML

Controller

  

@RequestParam(value = “[リクエストパラメータ名]”) String[]

selectタグでmultipleが有効になっている値をリクエストパラメータとして受け取る場合です。
画面からのリクエストで複数条件をパラメータとしたい場合に使用する印象です。

HTML

Controller

 

単一 & 複数(組み合わさったパターン)

@Validated

@Validatedはバリデーションを実行するためのアノテーションですが、リクエストパラメータのマッピングも行ってくれます。
ただし、マッピング用のオブジェクトを準備することが前提なるため、複雑なリクエストパラメータである場合のみ使用する印象です。

HTML

マッピング用オブジェクト(Form)

Controller

 

その他

必須、デフォルト値指定

リクエストパラメータが必須なのか、デフォルト値があるのかを設定することも可能です。
詳しくは以下でまとめられています。
Spring MVC コントローラの引数

 

まとめ

  • リクエストパラメータの複雑さによって、適切な実装をすることが望ましい。
  • パスパラメータの場合はURLの構造でパラメータを指定することに注意する。

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-プログラミング, Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

【SpringBoot入門】#9~ 更新画面の作成

左側のコンテンツ40% 右側のコンテンツ60% ※2021/01/09  画面遷移等のバックエンド側の内容が抜けていたので追記しました。 概要 検索結果一覧から編集ボタン押下で遷移してくる更新画面です …

CSV/TSVデータを作成するVBAツールを公開

【追記:2020年8月1日】 UTF-8(BOM無し)に対応しました。 業務でテスト用のCSVファイルを作成することがよくあるので、自分でツールを作成しました。 TSVにも対応しています。 基本仕様 …

【Bootstrap】ログイン画面をデザインしよう!

概要 【SpringSecurity】#3~ 独自のログイン画面でシンプルな独自のログイン画面を実装しました。 これに、Bootstrapでデザインを施していきます。 Bootstrapのサンプルを基 …

【Java】オブジェクト指向の練習題材(会員オブジェクト)

前回記事、オブジェクト指向とは何なのかを簡単に説明してみるの練習題材です。   仕様 以下の会員クラスを作成し、Mainクラスで表示する。 会員クラスには、「会員」という単位で持つことできる …

Javaで数値(int)を部分一致判定する

文字列に変換して判定します。 <方法> ・matchesメソッドで正規表現使う。 ・containsメソッドに判定文字を渡す。 また、メソッドに切り出すと、intを変換する処理を個別に書かなくてよくな …

■運営者プロフィール
IT業界10年のエンジニア。
PHP -> VBA -> Javaと渡り歩いてきて、今はJavaをメインにフリーランスエンジニアとして活躍中!

[保有資格]
・Java SE 11 Gold

一度はエンジニアを辞めざるを得なかった私が再びエンジニアとして復活した数奇な物語

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。