[Seasar-user:3621] Re: (無題)
Shinpei Ohtani
[E-MAIL ADDRESS DELETED]
2006年 5月 15日 (月) 11:01:44 JST
おおたにです。
> 返信遅くなりました。
> ソースは以下のようになっています。
>
> -- dicon --------------------------------------------------
> <component name="userInfo"
> class="jp.co.corp.common.UserInfo" instance="session"/>
> <component name="hogeAction"
> class="jp.co.corp.action.HogeActionImpl" instance="request"/>
> -----------------------------------------------------------
>
> -- hogeActionImpl.java ------------------------------------
> class HogeActionImpl implements HogeAction {
>
> UserInfo userInfo = null;
>
> 〜省略〜
>
> public void setUserInfo(UserInfo userInfo) {
> this.userInfo = userInfo;
> }
> }
> ------------------------------------------------------------
>
> >おおたにさん
> >上記のsetterがあるクラスのinstanceのスコープが
> >気になります。
>
> HogeAcitonImplとUserInfoのスコープが一緒じゃないといけないっぽいですね。
だと思います。スコープの短い方(request)に長い方(session)を
入れることは基本的に出来ないと思います。
> >米林さん
> >上記のsetterで取得出来ないとは別になりますが
> >sessionを直接扱いたいときは、session自体のsetterを用意すれば
> >sessionを簡単に取得できます。
>
> このやり方でもいいのですが、
> やはり煩わしいのでシンプルにしたいのです。
シンプルにするのであれば、私はこの方法が良いと思います。
JSFのやり方だと
FacesContext.getCurrentInstance().getExternalContext().getSessionMap()
で取れますので、こういうユーティリティクラスを書く方法もありますが
シンプルにsetter作るほうが良いと思います。
Seasar-user メーリングリストの案内