[Seasar-user:10213] Re: [S2Struts]InterceptorにセッションのオブジェクトがDIされない

Takafumi Yoshida [E-MAIL ADDRESS DELETED]
2007年 8月 30日 (木) 09:26:00 JST


いつもお世話になります。吉田@オプティクスです。

07/08/29 に Koichi Kobayashi<[E-MAIL ADDRESS DELETED]> さんは書きました:
> なるほど...
> LoginInfo は Dto ではないので,S2 で管理される
> コンポーネントではありません.

たしかにSMART Deployの対象外ですね..

> Action は外部バインディングが有効になっているため
> コンポーネントではない LoginInfo が DI されますが,
> Interceptor は外部バインディングが有効ではないため
> LoginInfo は DI されません.

ここも理解できます。

> 対処としては,LoginInfo を LoginInfoDto に
> 変更し (パッケージも <root>.dto に),
>
> @Component(instance=InstanceType.SESSION)
> public class LoginInfoDto {
>   ...
> }
>
> としてインスタンス属性を session にしてください.
> これで LoginInfoDto は session スコープの
> コンポーネントとして扱われるようになります.
>
> その上で,
>
> >       @ExportToSession
> >       public LoginInfo getLoginInfo() {
> >               return loginInfo;
> >       }
>
> の @ExportToSession は取り除いてください.
> # プロパティの型と名前も LoginInfoDto に.

上記のようにしてセッションに格納したオブジェクトがInterceptorにDIされているのを
確認しました。

#ただ、作成中のPGではなぜか、LoginInfoDtoの各プロパティがnullになってたり..
#検証用のPGでは問題なかったので、どこかでnewしてそうだな〜

ありがとうございました。

|--------||--------||--------||--------||--------||--------|
有限会社オプティクス
700-0971
岡山県岡山市野田3-1-18 安田ビル5F
TEL:086-246-9321
FAX:086-246-5117
http://www.optics-net.com
mail:[E-MAIL ADDRESS DELETED]
gmail:[E-MAIL ADDRESS DELETED]
|--------||--------||--------||--------||--------||--------|



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