SE_BOKUのまとめノート的ブログ

SE_BOKUが知ってること・勉強したこと・考えたことetc

画面遷移:GET時のリクエストパラメータを受け取る STS 3+Spring Boot +thymeleaf 

GET時のリクエストパラメータの受取方法と画面遷移のやり方を確認してみます。 

STS3(3.9.6)+SpringBoot2.0+Tymeleaf3.0迄動作確認しています。

f:id:arakan_no_boku:20190222012501j:plain

 

パラメータの受取

 

hello.html を想定して、/localhost:8080/hello?msg=TEST のパラメータ付URLを渡してみます。

 

 コントローラクラスで定義

 

ソースはこんな感じ。

@Controller
public class SampleController {

      @RequestMapping("/hello")

      public String hello(@RequestParam(defaultValue = "NOT PARAM") String msg,Model model) {

               model.addAttribute("msg", msg);
               return "hello";
      }

}

 

@RequestParamアノテーションを使って受け取るパラメータを指定します。 

上記の例だと、パラメータが「?msg=TEST」なので、受け取る変数は「String msg」としています。 

パラメータで受け取ったmsgを、確認用に画面に渡します。

model.addAttribute("msg", msg);

リクエストパラメータの名前と受け取る変数の名前が一致していれば、自動的にマッピングしてくれます。 

ただ。

単に「@RequestParam String msg」とする方法だと、msgパラメータが指定されていないと例外になります。 

なので。

デフォルト値を指定しておくか、

パラメータが指定されていない場合に例外が発生しないようにします。

 

デフォルト値を指定するパターンの例です。

 

defaultValueを使います。

public String hello(@RequestParam(defaultValue = "NOT PARAM") String msg,Model model) 

 

未指定でも例外にならない方の例

 

こちらは未指定でも例外にならないようにするだけの例です。

requiredを使います。

public String hello(@RequestParam(required = false) String msg,Model model) 

 

動作確認

 

確認用のHTMLです。

<p class="msg" th:text="${msg}" />

 実行してみます。

「/localhost:8080/hello?msg=TEST」のURLの時

f:id:arakan_no_boku:20170402220737j:plain

パラメータなし「/localhost:8080/hello」のURLの時

f:id:arakan_no_boku:20170402220828j:plain

いけたみたいです。 


 STS+Spring Boot +thymeleaf 関連記事

 

入力画面に関連する記事

画像をSUBMITボタン代わりに使う

ラジオボタンとラジオボタングループを使う 

ラジオボタンとラジオボタングループを使う 

チェックボックスを使う。 

HTMLのタグの閉じ忘れで例外が発生する!

プルダウンリストとマルチセレクトボックスを使う。

今度はテキストエリアで複数行入力する。 

テキストボックスの入力と基本的なチェックを使う。

 

参照画面・画面遷移に関連する記事

参照画面:テーブルを使い、行毎に色分けした一覧表を表示する。 

参照画面:条件に一致した時のみHTML要素を出力する。

セッションを使って画面間で情報を受け渡す 

画面遷移:GET時のリクエストパラメータを受け取る 

日本語しか使わなくても、i18N対応はする意味がある。

 

入力チェックに関連する記事

入力チェック:未入力時に空文字が渡される仕様を回避する。 

入力チェック:@Patternと正規表現で独自チェックする。

入力チェック:アノテーション定義を自分で作る。(再利用版)

入力チェック用アノテーション定義を自分で作る。(独自実装版)

入力チェック:複数項目の相関チェックアノテーションの作り方

 

データアクセス・その他に関連する記事

データアクセス:Jprepositoryを使って簡単にCRUDする。 

データアクセス:ネイティブなSQL文を実行する 

クラスパス内の静的ファイルにアクセスする 

SpringBootだとログの書き出しも楽ちんです。 

SpringBootプロジェクトでJUNIT4を使った単体テストをする。