学習用WEBフレームワーク作成 その2昨日の続きです。
学習用WEBフレームワーク作成 その1(2008-12-16 - T.RYoken がんばる日記 / TryGun blog)
Controllerクラス AddController.java
public class AddController {
/** セッション */
public EzSession session;
/** リクエスト */
public EzRequest request;
/** レスポンス */
public EzResponse response;
/** 初期画面表示 */
public void index() {
// クライアントに初期表示する画面(HTML)に対応する
// ビュークラスを生成し、resuponseにセットします。
response.setPage(new Add());
}
/** executeボタンが押下された時に呼び出されるメソッド */
public void execute(Add add) {
// 画面の入力値をビュークラス(Add)にセットします。
request.set(add);
// 入力値の検証を行います。
add.validate();
// 入力値を加算し、合計をAdd.totalにセットします。
add.total = Integer.parseInt(add.value1) + Integer.parseInt(add.value2);
// クライアントに表示する画面(HTML)に対応するビュークラスをセットします。
response.setPage(add);
}
}
画面(HTML)の遷移を制御するクラスです。
画面で押下されたボタン(リンク)の「name属性」と同名のメソッドが呼び出されます。
Controllerクラスの各「プロパティー」について説明します。
(1) EzSession
/** セッション */
public EzSession session;EzSessionクラスは、アプリの利用が開始されてから終了するまでの間、利用可能なオブジェクト格納領域です。例えば、ログインしてから、ログアウトするまでの間、保持する必要のあるオブジェクト(ユーザー情報等)を格納する場合に利用します。
何気なくうれしい機能?
EzWebでは、タブブラウザーに対応しておりますので、タブ毎にEzSessionが作成されます。1ブラウザー、複数タブで、同一のアプリケーションに、アクセスしても問題ありません。
(2) EzRequest
/** リクエスト */
public EzRequest request;EzRequestクラスは、クライアントからの要求から返答(応答)までの間、利用可能なオブジェクト格納領域です。例えば、クライアントから、ログイン要求があってから、クライアントにトップページを表示するまでの間を指します。クライアントから、要求があった場合は、このクラスに画面入力値がセットされます。
何気なくうれしい機能?
EzRequestには、画面入力値が、前回の状況と異なっているか(入力値の打ち変えが発生したか)を判別する「isChange」メソッドがあります。
また、ブラウザーの「戻る」ボタンが押されたかを判別する「isSynchronizing」メソッドもあります。その他色々…
(3) EzResponse
/** レスポンス */
public EzResponse response;EzResponceクラスは、クライアントへの返答(応答)クラスになります。
クライアントへ表示する画面の設定、またはクライアントへダウンロードファイルの送信を行うクラスです。また、後続処理を中断し、設定された画面を即座に表示するための機能(finishメソッド)をもちます。
何気なくうれしい機能?
EzResponseには、クライアントにダウンロードファイルを送信するための「getOutputStream」メソッドがあります。EzResposeより取得したOutputStreamが、実際に利用されない(出力されない)場合は、クライアントへ、画面を表示することが可能です。
具体的にいうと、コントローラーからサービスクラスのメソッドに、「OutputStream」を受け渡し、サービスのメソッド内で、ダウンロード対象データが無いと分かった場合は、画面にエラーメッセージを表示することが可能になります。つまり、サービスからjava.io.Fileを返す必要がなくなります。
Controllerクラスの各「メソッド」について説明します。
(1) index メソッド
/** 初期画面表示 */
public void index() {
// クライアントに初期表示する画面(HTML)に対応する
// ビュークラスを生成し、resuponseにセットします。
response.setPage(new Add());
}
(2) executeメソッド
/** executeボタンが押下された時に呼び出されるメソッド */
public void execute(Add add) {
// 画面の入力値をビュークラス(Add)にセットします。
request.set(add);
// 入力値の検証を行います。
add.validate();
// 入力値を加算し、合計をAdd.totalにセットします。
add.total = Integer.parseInt(add.value1)
+ Integer.parseInt(add.value2);
// クライアントに表示する画面(HTML)に対応するビュークラスをセット
response.setPage(add);
}
つづく…