こんにちは、@seitです。Bootでバリデーションチェック実装を試したので備忘録です。Frameworkで用意されている@Validatedアノテーション(org.springframework.validation.annotation)を使って、画面に入力された値のチェックを行います。簡単なFormとController、HTMLを用意し、text1フィールドを入力必須にしてみます。テンプレートエンジンはThymeleafを使っています。</form></body>今回はtext1を必須入力にしたいので、そのフィールドに@NotBlankアノテーションを付与します(1)。@NotBlankアノテーションは、指定したフィールドに空白が入力されることを許容しません。独自のエラーメッセージを定義する場合は、message属性を使用します(message属性を定義しない場合はデフォルトのメッセージが返されます)。Controllerが受け取るFormに@Validatedアノテーションを付与します(2)。@Validatedを付与したFormに対して、SpringはController#inputハンドラが呼び出される前にバリデーションチェックを行います。これだけで、text1に何も入力しない場合に、Controller#inputハンドラの引数BindingResultにエラーが渡されます。Controllerでは、バリデーションエラーの発生有無を3でチェックしています。Thymeleafでエラーを表示するには、#fieldsからエラー情報を取得することで表示できます(4)。groupでチェック対象を絞るバリデーションチェックは、@Validアノテーション(javax.validation)でも行うことができますが、@Validated(org.springframework.validation.annotation)を使うことでgroups属性を利用できます。groups属性によって、状況に応じてチェック対象としたり、チェック対象から外したりといった制御が可能です。</form>今回は2つのGroup(AlphaGroup4、BetaGroup5)を用意しました。InputFormのtext1をAlphaGroupに指定しています(2)。InputFormにtext2を追加し、BetaGroupを指定しています(3)。これで、@ValidatedにAlphaGroupを指定(1)することで、同じAlphaGroupに属するフィールド(text1)のみバリデーションチェックが入ります。AssertTrueを用いた相関チェックAssertTrueを用いることで、相関チェックを行うことができます。Aが入力されている場合は、Bも必須入力とする、といったようなことができます。今回の例では、text1が入力されている場合、text2の入力チェックを行います。2019の15日目です。2019の10日目です。テック...2019-10-23HandlerInterceptorAdapterで共通処理を行うこんにちは、@seitです。Logbackでログを出力するこんにちは、@seitです。canvasを使って動体感知。月別アーカイブ検索はてなブログをはじめよう!asoviewtechさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。