【第七回】ヴァリデーションチェック

Javaウェブアプリ開発

はじめに

DreamHanksの松下です。

前回は画面入力されたものをサーバーに送る(リクエストを送る)ところまで解説しました。

今回は受け取ったリクエストパラメータが正しいものが入力されているかを検証する
ヴァリデーションチェックについて解説していきたいと思います。

連載記事まとめ

 

動的にWebアプリを作るということ

動的なWebページとは、同じURLをリクエストされた場合でも
アクセスした人に応じてページの見え方を変えて提供するページのことです。

例えばECサイト(ネットショッピングができるサイト)やYouTubeなどの動画サイトで、
自分の閲覧履歴やお気に入りに追加した情報などを加味してページが構成され、
アクセスした人それぞれの好みや行動の傾向に合わせたページが提供されます。

こういった動的にWebページを作る方法の一つとして「サーブレット」があります。

 

サーブレットって具体的になに?

サーブレットとは受け取ったリクエストによって、返すレスポンスを変える仕組みそのものを指す言葉です。

Javaプログラムのソースコードで言うと、controllerクラスのメソッドを指します。

上記のように各メソッドが受け取ったリクエストによって、動的にレスポンス(JSP)を返します。

 

 

Spring-MVCでヴァリデーションチェックのやり方

pom.xmlにライブライ追加

下記のライブラリを追加します。

Controllerの設定

上記のようにメソッドの引数に定義することで、入力チェックの結果を受け取れます。

IF分でBindeingResultの変数に対して「.hasErrors()」関数を使って、結果のture/falseを取得できます。

この真偽の結果によって、ログイン画面に戻し、エラーメッセージを描画するか
この後の処理に行くかを決めます。

@ModelAttribute

@ModelAttributeを利用して、オブゼダートを生成します。

@Valid

@Validを利用して、検証作業ができる。

 BindingResult オブゼダート

BindeingResultとはFormクラス内で入力チェックを行った結果を受け取るものです。

検証するVO作成

ヴァリデーションチェック自体はFormクラス内で行われます。

アノテーションについて

Formクラス内で定義されているエンティティ一つ一つにアノテーションを使って
入力チェックする内容を設定できます。
アノテーションの種類については無数にあるので、その都度調べながら記述していきます。

上記のように、バリエーション違反した場合のメッセージの設定もできます。

JSPでエラーメッセージ表示

下記のタグを追加します。

コントローラクラスではメソッドの引数にある入力チェックを行うformに対して、
「@Valid LoginForm aa」のように、@Validをつけましょう。

 

相関チェックについて

@AssertTrueを使うと、相関チェックができます

 

相関チェックは、複数の項目に入力された値の妥当性のチェックです。

項目Aの入力値と、項目Bの入力値と、項目Cの入力値と、・・・に
妥当性があるかどうかを制限するチェックです。

例)転記日付が登録日付より前の日付ではないこと

最後に

今回はサーブレットとは何か?・ヴァリデーションチェックのやり方について解説しました。
次回は入力されたユーザ情報であるpasswordがDBのユーザ情報と一致しているか?という
ビジネスロジックについて解説していきます

お読みいただきありがとうございました。

 

コメント