[Seasar-user:14765] Re: [SAStruts]Exception による画面遷移制御について
藤田 佳宏
[E-MAIL ADDRESS DELETED]
2008年 6月 20日 (金) 16:46:00 JST
藤田です。
いつもお世話になっております。
> ActionにDIすると、publicフィールドでアクセスできる用になる
> と思います。
ログイン情報のDTOなので、ルールとしてActionへのDIは必ずしています。
状態としては、input属性が
Actionメソッド ⇒ 問題なし
JSP ⇒ JspException(オペレータ "." を利用しましたが...)発生
という感じです。
もう少し、ソースを追いかけてみます。。。
Yasuo Higa さんは書きました:
> ひがです。
>
>> 藤田です。
>> いつもお世話になっております。
>>
>> 下記のSessionオブジェクトのEL式での参照ですが
>> 現状は、Sesionオブジェクトのメンバー変数をprivateにし
>> getterを用意すれば取得は可能でした。
>>
>> 何とかpublicで対応したいと思っているのですが
>> 何か良い案は無いものでしょうか。
>>
> ActionにDIすると、publicフィールドでアクセスできる用になる
> と思います。
>
>> 以上、よろしくお願いします。
>>
>> 藤田 佳宏 さんは書きました:
>>> 藤田と申します。
>>> いつもお世話になっております。
>>>
>>> 現在、業務側で発生したExceptionで共通的に処理するものを
>>> 何とか1箇所にまとめることができないかと考えています。
>>>
>>> 例えば
>>> SOptimisticLockExceptionがthrowされてきた場合には
>>> 「他ユーザに更新されました。」
>>> というメッセージを自画面に表示する。という感じです。
>>>
>>> 現状は、S2RequestProcessor#processActionPerformで
>>> 下記のような感じにしています。
>>>
>>> ここから ----------
>>> ActionForward forward = null;
>>> try {
>>> forward = action.execute(mapping, form, request, response);
>>> } catch(SOptimisticLockException e) {
>>> ActionMessage actionMessage = new ActionMessage("MSG001");
>>> ActionMessages actionMessages = new ActionMessages();
>>> actionMessages.add(Globals.ERROR_KEY, actionMessage);
>>> ActionMessagesUtil.saveErrors(request, actionMessages);
>>> forward = s2ActionMapping.createForward(
>>> executeConfig.resolveInput(s2ActionMapping)
>>> );
>>> } catch (Exception e) {
>>> return (processException(request, response, e, form, mapping));
>>> }
>>> ---------- ここまで
>>>
>>> @Executeのinputを必須というルールにすることで、正しく遷移はできるのですが
>>> Actionメソッドではなく、JSPに遷移した際にセッションに格納された情報を
>>> EL式で参照できない現象になっています。
>>>
>>> (おそらく)EL式で参照するためには、
>>> ActionWrapper#exportPropertiesToRequestを通す必要があると
>>> 考えているのですが、RequestProcessor側で対処する方法は
>>> ありませんでしょうか。
>>>
>>>
>>> 以上、よろしくお願いします。
>>>
>>
>> --
>> 藤田 佳宏 (FUJITA Yoshihiro)
>> E-mail [E-MAIL ADDRESS DELETED]
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>
>
--
エヌシーエステクノロジー株式会社
開発事業グループ 第三システム部
藤田 佳宏 (FUJITA Yoshihiro)
E-mail [E-MAIL ADDRESS DELETED]
TEL:(06)6444-1003 FAX:(06)6444-1081
Seasar-user メーリングリストの案内