[Seasar-user:12090] Re: S2Strutsのセッションへのアクセスがどうしてもうまく行きません。

YASUO HIGA [E-MAIL ADDRESS DELETED]
2007年 12月 13日 (木) 20:06:57 JST


ひがです。

ここに書かれている情報だけだとうまくいきそうですけどね。
バージョンや環境などが書かれていないのですが、
#書いたほうがいいです。
S2Struts-Tigerを使っているなら、

@ExportToSession()
public List getAdminCdList(){
   return adminCdList;
}

のように記述するとどうなりますか。

> すみません。S2Struts初心者です。
> Aページ → Action1 → Aページ(同一ページ)というように
> 同一のページに遷移する場合のセッションオブジェクトの取得がうまくできません。
> setterメソッドでスコープを検索し、プロパティがセットされ、
> getterメソッドでEXPORT定数指定のスコープに預ける記述をしていますが、
> 下記の記述で問題ありますでしょうか。
> 
> なおセッションに格納したオブジェクトはActionFormではなくArrayListです。
> またadminCdListは、Aページ表示以前(ひとつ前のActionクラス)で、
> 空のArrayListをnewしてすでにsessionに格納しています。
> 
> (Action1クラス:ソース抜粋)
> -----------------------------------------------------------------------
> //EXPORT定数
> public final static String adminCdList_EXPORT = Constants.SESSION;
> 
> //プロパティ
> public List adminCdList;
> 
> /**
>  * Aページ初回表示にはすでにセッションにあるadminCdListオブジェクトを取ってく
る?(これはうまく行く)
>  * Aページ2回目表示時に、リストの要素が追加されているはずが。。。
>  */
> public void setAdminCdList(List adminCdList){
>  this.adminCdList = adminCdList;
> }
> 
> public List getAdminCdList(){
>   return adminCdList;
> }
> 
> //アクションメソッド
> public String execute(){
> 
>   //2回目以降リストの要素が1個増えているはずだが0のまま。。
>   logger.debug(adminList.size());
> 
>   adminCdList.add("文字列");
> 
>   //毎回1が表示される。。。
>   logger.debug(adminList.size());
> 
>   //Aページ(同一ページ)へ遷移
>   return SUCCESS
> }
> -----------------------------------------------------------------------
> 
> ログイン時のUserオブジェクトなどは、うまくsessionに格納できているのですが。。 
> 
> ご教授いただけますでしょうか。
> 
> 
> 
> 
> ------------------------------------------------------------------------------
--
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 


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