Spring Boot チェック処理

Spring Bootのチェック処理に順番をつけてみた

Spring Bootを利用したWEBアプリケーション上で、フォームクラスにアノテーションを指定することで、様々な単項目チェックを行うことができるが、そのアノテーションにgroups属性を指定することで、チェック処理の順番をつけることができる。

今回は、チェックを行うフォームクラスのアノテーションに、groups属性を指定してみたので、そのサンプルプログラムを共有する。

前提条件

下記記事の実装が完了していること。

Spring BootのWEB画面上でチェック処理を実装してみた(ソースコード編)今回も、引き続きチェック処理を含むそのサンプルプログラムについて共有する。前回は、サンプルプログラムの完成イメージについて記載していたが...

サンプルプログラムの作成

作成したサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成
なお、上記の赤枠は、前提条件のプログラムから追加・変更したプログラムである。

コントローラクラスの内容は以下の通りで、loginメソッド内で、フォームクラスに定義されたチェックを行うようになっている。また、チェックの順番を有効にするために、引数のフォームに「@Validated(All.class)」アノテーションを付与している。

また、フォームクラスの内容は以下の通りで、IDとパスワードの入力チェックを行うようになっている。また、groups属性で何番目にチェックをするかを指定している。

さらに、フォームクラスの入力チェックのgroups属性で指定した順番を定義する各インタフェースの内容は以下の通りで、Allインタフェース内で、チェックの順番を定義している。

また、チェック処理で使用しているエラーメッセージは、以下のプロパティファイルで定義している。

なお、上記プロパティファイルでは、Lengthアノテーションを改行して表示しているが、実際は改行しない設定になっている。



さらに、ログイン画面とそのCSS,JSファイルの内容は以下の通りで、フォームクラスの入力チェックの結果を表示している。また、「パスワードを表示する」チェックボックスが選択された場合の動きを定義している。

また、メイン画面のHTMLは以下の通りで、ログイン後の画面の内容を定義している。

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-boot-check-order/demo



Code VillageはJavaScriptを中心としたサポート体制が充実したプログラミングスクールだったJavaScriptや、JavaScriptのフレームワーク「React」「Vue」を中心にオンラインで学習できるプログラミングスクール...

サンプルプログラムの実行結果

サンプルプログラムの実行結果は、以下の通り。

1) Spring Bootアプリケーションを起動し、「http:// (ホスト名):(ポート番号)/」にアクセスすると、以下のように、login.htmlの画面が表示されることが確認できる。
サンプルプログラムの実行結果_1

2) 何も指定せず「ログイン」ボタンを押下すると、以下のように、エラーメッセージが表示されることが確認できる。
サンプルプログラムの実行結果_2

3) IDのみ指定し「ログイン」ボタンを押下すると、以下のように、パスワードの必須チェック(1回目)でエラーになるため、IDの桁数・文字数チェック(2回目)のチェックが行われないことが確認できる。
サンプルプログラムの実行結果_3_1

サンプルプログラムの実行結果_3_2

4) ID・パスワード(いずれも2回目のチェックでエラーになる値)を指定し「ログイン」ボタンを押下すると、以下のようなエラーが発生することが確認できる。
サンプルプログラムの実行結果_4_1

サンプルプログラムの実行結果_4_2

5) ID・パスワードを指定し、「パスワードを表示する」チェックを押下すると、以下のように、パスワードが表示されることが確認できる。
サンプルプログラムの実行結果_5_1

サンプルプログラムの実行結果_5_2

6) ID(エラーでない値)、パスワード(3回目のチェックでエラーになる値)を指定し「ログイン」ボタンを押下すると、以下のようなエラーが発生することが確認できる。
サンプルプログラムの実行結果_6_1

サンプルプログラムの実行結果_6_2

7) ID・パスワード(いずれもエラーでない値)を指定し「ログイン」ボタンを押下すると、以下のように、メイン画面に遷移できることが確認できる。
サンプルプログラムの実行結果_7_1

サンプルプログラムの実行結果_7_2

要点まとめ

  • Spring Bootを利用したWEBアプリケーション上で、フォームクラスにアノテーションを指定することで、様々な単項目チェックを行うことができるが、そのアノテーションにgroups属性を指定することで、チェック処理の順番をつけることができる。