連載
» 2004年06月26日 00時00分 公開

Strutsを使うWebアプリケーション構築術(6):Validatorによる妥当性検証の実現(後編) (1/2)

[山田祥寛,@IT]

 前回「Validatorによる妥当性検証の実現(前編)」では、Validatorプラグインを利用する際に必要となる環境設定や準備について紹介しました。後編となる今回は、前回の設定を基に書籍登録・更新アプリケーションに検証機能を組み込みます。

今回紹介するアプリケーションの概要

 今回は、入力されたデータが足りない場合、以下の画面のようなエラーメッセージを表示する機能を書籍登録・更新アプリケーションに実装していきます。

書籍登録・更新アプリケーションに実装された検証機能 書籍登録・更新アプリケーションに実装された検証機能

 まず、サンプルアプリケーションの関連図とコード実行時の内部的な流れを示しておきます。いきなり個々のコードに注意を向けるのではなく、まず先に全体像を把握しておけば、理解を深められるはずです。いまの段階では、細かいことはあまり気にせず、大まかな流れをつかむつもりで眺めてみてください。

アプリケーションの概念図 アプリケーションの概念図
サンプルアプリーションの処理の流れ
No 処理概要
1 BookUpdate.jspでデータを入力・変更した後、[保存]ボタンをクリック
2 クライアントサイドで入力データの検証処理が行われる(JavaScript機能が有効になっているブラウザのみ)
3 検証の結果、データが正しい場合、リクエストパス「/BookWriteAction」に対してデータが送信される(実際にはパスの指定にかかわらず、アクションサーブレットが起動)
4 リクエストデータを受け取ったアクションサーブレットが、「/BookWriteAction」をキーにコンフィグレーションファイル(struts-config.xml)配下のaction要素を検索。リクエスト処理に使われるアクションフォームBeansとアクションクラスを特定する
5 リクエストデータの内容をアクションフォームBeansクラスBookUpdateFormにセット。この際、HTMLタグライブラリにおけるproperty属性の値をキーに、アクションフォームBeansの対応するアクセサメソッドが呼び出される
6 サーバサイドで入力データの検証処理が行われる(エラー発生時には、BookUpdate.jspにフィードバック)
7 手順4で特定したアクションクラスBookUpdateProcessを起動。executeメソッドをコールし、データベースの登録・更新処理を行う
8 処理結果ステータス“success”をキーとして、struts-config.xmlのaction要素/forward要素を検索。対応するパス(path属性)に処理を転送する
9 最終的な遷移先/BookViewAction.doで、更新が反映された結果を一覧表示する(BookViewAction.doの挙動については第4回を参照)

アクションフォームBeansのValidator対応

 アクションフォームBeansクラス「BookUpdateForm」については、第4回「リクエスト情報を制御するアクションフォームBeans」ですでに紹介していますが、Validatorプラグインを使用する際は、下記の赤字部分について変更を行う必要があります。

BookUpdateForm.java(前回からの差分)
package struts;

import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.validator.*;

public class BookUpdateForm extends ValidatorForm {
...中略...
}

 ValidatorFormクラスは、ActionFormクラスのサブクラスです。Validatorプラグインに対応したアクションフォームBeansを定義するには、このValidatorFormクラスを継承する必要があります。この設定を行わなかった場合、サーバサイドの検証機能は有効にはなりませんので、注意してください。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。