[Seasar-user:19509] Re: 【Teeda】セッションスコープにDTOを格納・利用

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2010年 3月 17日 (水) 20:00:00 JST


小林 (koichik) です.

Date:    Wed, 17 Mar 2010 14:27:50 +0900
From:    永守正樹 <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:19505] Re: 【Teeda】セッションスコープにDTOを格納・利用

> doLogin()で
> sessionScope.setAttribute("nid001taDto", nid001taDto);
> 
> を忘れてました。

それをする場合,

> > 【Nid001taDto】
> > @Component(instance = InstanceType.SESSION)

のアノテーションは不要です.
逆に言うと,このアノテーションを指定するなら

> > 【LoginAuthInterceptor】(抜粋)
> >
> > public Object invoke(MethodInvocation invocation) throws Throwable {
> >
> > //Seasar2で管理しているオブジェクト経由でセッションを取得
> > Map<String, Object> sessionScope =
> > SingletonS2Container.getComponent("sessionScope");

というようなことはせず,

pubic Nid001taDto nid001taDto;

とすることで,Seasar2 により DI されるように
なります.
# customizer.dicon で useLookupAdapter に
# true を指定する必要があります.

この場合,ログインしてなくても Dto は常に
DI されるので,その中身 (d001User など) を
チェックする必要があります.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



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