[Seasar-user:10175] Re: [S2Struts]InterceptorにセッションのオブジェクトがDIされない
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2007年 8月 29日 (水) 17:20:24 JST
小林 (koichik) です.
Date: Wed, 29 Aug 2007 16:45:33 +0900
From: "Takafumi Yoshida" <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:10172] Re: [S2Struts]InterceptorにセッションのオブジェクトがDIされない
> ログイン処理をおこなったActionでExportToSessionアノテーションを使用しています。
なるほど...
LoginInfo は Dto ではないので,S2 で管理される
コンポーネントではありません.
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 に.
--
<signature>
<name>Koichi Kobayashi</name>
<e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>
Seasar-user メーリングリストの案内