[Seasar-user:4296] Re: [S2Struts]MethodInvocation からのrequest、responseの取得に関して

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2006年 8月 8日 (火) 21:21:31 JST


小林 (koichik) です.

Date:    Tue, 8 Aug 2006 17:18:08 +0900
From:    [E-MAIL ADDRESS DELETED]
To:       [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:4293] [S2Struts]MethodInvocation からのrequest、responseの取得に関して

> ActionはPOJOで作成しております。
> これを実現させるためには、InterceptorクラスのhandleThrowable()メソッド内で
>> forwardをする必要があると思います。このため、MethodInvocationクラスの
> インスタンスからgetArguments()メソッドでrequestとresponseを取得しようと
> しているのですが、情報が入っておらずうまく取得できません。

getArguments() で取得できるのは,AOP が適用されたメソッドの
引数です.
POJO アクションということは,アクションのメソッド引数に
request も response もありませんよね?
そうであれば,getArguments() からは request も response も
取得できません.

> MethodInvocationクラスがどのようなものが理解していないのですが、
> MethodInvocationクラスには情報をセットする必要があるのでしょうか?
> またそれはどのように行えば宜しいでしょうか?

作成した Interceptor クラスに request と response を
プロパティとして持たせてください.
そして

http://www.seasar.org/wiki/index.php?FAQ%2FS2AOP#z685b23f

の Answer に書いてあるように,作成した Interceptor に
InterceptorLifecycleAdapter を適用してください.
その際,作成した Interceptor の instance 属性は prototype に
してください.

こうすることで,作成した Interceptor の invoke() メソッドが
呼ばれたときに request および response プロパティが設定されて
いると思います.



--
<signature>
   <name>Koichi Kobayashi</name>
   <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>




Seasar-user メーリングリストの案内