「アプリケーション開発」のための汎用性が高い、かつ単純なAPIを持ったフルスタックのJavaフレーム
  • TEL: 03-6418-5221
  • TEL: 03-6418-5221

リクエスト属性へのアクセス

コマンドクラスからjavax.servlet.http.HttpServletRequestから取得するパラメータにはWisdomのラッパークラスwisdom.core.application.IRequestParserを使用します。

リクエスト情報へのアクセス wisdom.core.application.IRequestHandler

wisdom.core.application.IRequestHandlerの取得と使用

IRequestHandlerインターフェースはリクエスト属性およびセッション属性へのアクセスを定義したインターフェースです。
このオブジェクトのインスタンスにはAbstractRequestCommandのインスタンス変数「rh」が利用可能です。
例) AbstractRequestCommandのサブクラスでのIRequestHandlerの使用  

package tutorial;
import wisdom.core.application.AbstractRequestCommand;
public class HelloWorld extends AbstractRequestCommand {

    protected void _execute() throws Exception {
        String name = rp.getString("name");
        rh.setAttribute("name", name);
        MyObject o = (MyOject)rh.getAttribute("o");
    }
}

例) IRequestHandlerを介したリクエスト属性の設定 

rh.setAttribute("name", name);

こ上の例では、nameという名前でString型のオブジェクトをリクエストの属性に設定しています。 

例) IRequestHandlerを介したリクエスト属性の取得 

MyObject o = (MyOject)rh.getAttribute("o");

上の例ではリクエスト属性から指定した名前のオブジェクトを取得しています。リクエスト属性はおもにJSP側で利用されます。
この場合、目的のオブジェクトがリクエスト属性にない場合、wisdom.core.request.AttributeNotFoundExceptionが送出されます。通常この例外をcatchする必要はありませんが、画面遷移の都合などで、目的のオブジェクトがリクエスト属性になくても可能な制御を行いたい場合には、戻り値がnullになる以下のメソッドを利用してリクエスト属性にアクセスします。  

MyObject o = (MyOject)rh.getAttribute("o", true);

※JSPでは、IRequestHandlerのインスタンスは取得できないので、IRequestParserを介してリクエスト情報にアクセスします。