入力値検査方針⚓︎
入力チェックには以下の種類があります。
- 単項目チェック
- 項目間チェック
- 複合チェック
単項目チェック⚓︎
入力必須チェック、桁チェック、型チェックなど、単一の項目のみで完結する入力チェックです。 SSR アプリケーションでは、誤った入力情報がシステムに投入されることを防止する目的に行います。
入力チェックは Bean Validation を利用して行います。 ビューモデルのフィールドに単項目チェックを行うアノテーションを付与します。 また、 @Validated アノテーションのバリデーショングループを使用して、メソッドごとにバリデーションを切り替えます。
必要に応じて、ビューにもビューモデルと同様の入力チェックが可能なように実装します。 ビューでの入力チェックは、 HTML5 のバリデーション機能を利用します。
項目間チェック⚓︎
パスワードと確認用パスワードが等しいかのチェック、タスク終了日が開始日より後であることのチェックなど、複数の項目を比較する入力チェックです。 SSR アプリケーションでは、誤った入力情報がシステムに投入されることを防止する目的に行います。
入力チェックはコントローラーのロジック内に実装します。 繰り返し使用するものは Bean Validation を独自拡張して汎用化します。
複合チェック⚓︎
ID の重複チェック、注文数が在庫数以内であるかのチェックなど、システムの状態によって入力値が妥当かどうかが変わる入力チェックです。 多くの場合、データストア内のデータと突き合わせて入力値の妥当性を確認します。
複合チェックはアプリケーションコア層の業務ロジック内で行います。 複合チェックでエラーがある場合は、業務例外を用いてアプリケーションコア層からコントローラーにエラーを通知します。 コントローラーでは業務例外をキャッチし、ビューモデルにエラーメッセージを設定します。