プログラミング Java

【Spring】バリデーション時に、入力値を保持する方法

投稿日:

登録画面で「登録」ボタンを押した後、
バリデーションで引っ掛かってエラーになっても
入力内容を画面に保持して置く方法
についてです。

テンプレートエンジンは、Tymeleafを使用しています。
方法としては、「th:field」を使って入力したフォームのフィールド名を指定するだけです。

コード

①入力するフォームクラスを、th:object で指定し、
ユーザID(Email)の入力ボックスに、th:field でフィールド名を指定します。

 
②登録時にエラーだった場合、formとmodelを登録画面に戻すようにします。

 

実装後の動作

ユーザID以外の項目がバリデーションエラーになったため登録画面に戻されますが、
ユーザIDに入力した値は保持されています。

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

ランキング評価する

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

執筆者:


  1. AO より:

    参考にさせていただいておりますが、質問があります。
    1.inputタグに th:fieldを指定すると500エラーになってしまいます。
    th:objectの名前で作ったFormの項目と合っているのですが、なぜなのでしょう。
    2.画面でDBから取得したプルダウンのリストがあるのですが、この方法でこのリストの保持もできるのでしょうか。
    よろしくお願いいたします。

    • ログログ より:

      AOさん
      コメントありがとうございます。

      >1.inputタグに th:fieldを指定すると500エラーになってしまいます。
      エラーメッセージがわからないので何ともいえませんが、そのフィールドにGetterはついていますでしょうか?
      getUserId()のようなメソッドです。
      th:fieldはGetterを呼び出しているので、そのメソッドが無いとフィールドにアクセスできなくてエラーになることがあります。

      >2.画面でDBから取得したプルダウンのリストがあるのですが、この方法でこのリストの保持もできるのでしょうか。
      私は試したことはないですが、調べたところ参考になる記事があったのでご紹介いたします。
      https://ja.getdocs.org/thymeleaf-select-option/

  2. AO より:

    ご紹介いただいた方法で動きました。有難うございます。
    500エラーはController側でmodelにFormの属性を追加することで解決しました。
    アドバイス有難うございました。
    あとはバリデーション時にプルダウン選択リストを保持できるかどうかですが、
    なにか参考となるものがございましたらご紹介いただければ幸いです。
    よろしくお願いいたします。

    • ログログ より:

      >2.画面でDBから取得したプルダウンのリストがあるのですが、この方法でこのリストの保持もできるのでしょうか。
      私は試したことはないですが、調べたところ参考になる記事があったのでご紹介いたします。
      https://ja.getdocs.org/thymeleaf-select-option/

comment

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

CAPTCHA


関連記事

【Java】Optionalが処理できないならデフォルト値を返そう

概要 Optionalはnullである可能性を明示的に返してくれる便利なコンテナ・オブジェクトです。 if(obj == null)… といったことをしなくてよくなったのは素晴らしいことだ …

【Java】Enumを使って変更に強いコーディングをする!

概要 仕事でコード値の判定が色んなところに散らばってしまった後に、コード値の定義を変更しなければいけなくなった状況が起こりました。 Enumで定義していれば変更箇所はEnum定義だけでよかったなぁ~と …

【SpringBoot入門】#5~ 登録画面の作成

概要 共通ヘッダーの「新規登録」リンクから遷移する、書籍情報登録画面を作成します。 遷移できるようにControllerの作成と、遷移先である画面をHTMLで作成していきます。   Formクラスの作 …

【Java入門】繰り返し処理(while, for)

概要 繰り返し処理の制御構造について学んでいきましょう。 繰り返しには以下があります。 while(条件に一致する間だけ繰り返す) do-while(一度必ず実行し、その後は条件に一致する間だけ繰り返 …

【Java入門】Javaの開発環境を準備しよう!

概要 これからJavaの勉強をしようとする方向けにJavaの開発環境を準備する手順をご説明します。   環境構築 Eclipseのダウンロード IDE(統合開発環境)のEclipseをダウンロードしま …

記事を探す

SpringFramworkの良書

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

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