[spring boot 6]ログインとユーザー登録画面を作ろう④

[spring boot 6]ログインとユーザー登録画面を作ろう④

前回に続き、エラー内容の表示をスマートにしていきます。

ここでは、エラー内容が各項目つき一つずつ表示されるようにしていきます。

使用環境

MacBook Pro (15-inch, 2016)

Eclipse:Oxygen.3a Release (4.7.3a)

spring boot バージョン:2.1.0

使用ライブラリ:DevTool,Lombok,H2,JDBC,Thymeleaf,Web

作成するプログラム

エラー内容が各項目つき一つずつ表示されるようにしていきます。

使用するコード

① signup.html

② ValidGroup1〜3.java

③ GroupOder.java

④ SignupController.java

⑤ SignupForm.java

 

① signup.html

今回わかりやすいようにエラーメッセージだけは赤く表示しました。

th:if= で指定のエラーも持っている場合のみ<span>タグを表示させ、

th:errors= でそのエラー内容を表示させています。

このようになっていればOKです。

パスワードの欄をみてみると、3つもエラーが出てます。

全部エラーを出すと、騒がしい感じになるので

バリデーションのチェックに順番をつけて1つずつエラーが表示されるようにしていこうと思います。

② ValidGroup1〜3.java

ValidGroup1〜3はインターフェイスとして作成し、何も記入せずにOKです。

ValidGroup1.java

ValidGroup2.java

ValidGroup3.java

③ GroupOder.java

@GroupSequenceをつけることで、バリデーションの順番を決めています。

この決まった形と思って覚えておけばOKです。

④ SignupController.java

@Validatedの引数に③で作成したインターフェースを指定することで、バリデーションの実行順番が実装されます。

⑤ SignupForm.java

各アノテーションにインターフェースのクラスを指定することで、

エラー内容に対しての順番決めを行っていきます。

この後にユーザー登録画面をみてみましょう。

何も入力していなければ、以下のように

パスワードのエラーが一つになりました。

次にパスワードだけエラーが出るように、他項目はしっかり入力してみます。

次の階層のバリデーションが出てきました。

ValidGroup1の項目を全ての項目でクリアしないと、

ValidGroup2のエラーは出現しませんので、注意してください。