[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 メーリングリストの案内