プログラミング 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入門】Javaの開発環境を準備しよう!

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

Camtasia(カムタジア)でKrisp(クリスプ)を使う方法

Camtasiaで動画撮影する時のノイズ除去にKrispを導入する方法です。 前提 Krisp(無料版でOK)をインストール済みであること。 Pro版を試したい方は以下の招待URLからダウンロードして …

VBAが書けるまでにどのくらいかかったか?

これからVBAを学ぼうとしている人向けに参考情報として書きます。 前提 前提として、私の経歴を少し書いておきます。 ・PHPでのWeb開発1年未満 ・Javaの簡易なアプリは作れる ・SQLも理解して …

2進数を使うと判定がシンプルになる!(じゃんけんプログラム編)

概要 仕事で2進数を使った判定処理について学んだので共有したくて執筆しました。 仕事上で設計したロジックは本記事で紹介するものより複雑でしたが、本質的な部分は変わらないので使って頂けると思います。 説 …

【SpringBoot入門】#13~ 独自のエラー画面の作成

概要 何らかのエラーが発生した場合に、エラー画面を表示して対応したいことがあります。 デフォルトのwhite label Error pageのままというわけにはいかないので、 独自のエラー画面を作成 …

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

[保有資格]
・Java SE 11 Gold

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

SpringFramworkの良書

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

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