[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 メーリングリストの案内