[Seasar-user:17425] Re: [S2Container][SAStruts] セッション格納の値について

Hiroshi Yamamoto [E-MAIL ADDRESS DELETED]
2009年 5月 13日 (水) 14:23:29 JST


山元です。

ひがさん対応ありがとうございます。

> sa-struts-tutorialで再現できるようにしていただくと
> 助かります。

了解しました。
ちょっとやってみます。

> あるいは、Seasar2にコンポーネント管理をさせて、ログインした
> タイミングで、loginFlagをonにする手もあります。

ログイン時にセッションの破棄・再作成を行うのが主目的でして、
例えば、上記の様にフラグでの制御であれば、ログアウトせずに
別のアカウントでログインした場合に、ブラウザバックで戻られると
不都合がないでしょうか。

Seasar2(SAStruts?)ではセッションの破棄・再作成を自前で
行うことは、やはり問題があるでしょうか?

以上、よろしくお願いいたします。


2009/05/13 10:00 Yasuo Higa <[E-MAIL ADDRESS DELETED]>:
> ひがです。
>
>> お世話になっております。
>> 山元と申します。
>>
>> Cool Deploy時にセッションに登録したDtoにActionで値を設定しても、
>> 次のリクエストには値が全て未設定になってしまうのですが、
>> 何か考えられることはないか教えていただけないでしょうか。
>> (Hot Deploy時は問題がありません)
>>
>> ログから一度目のリクエストと二度目のインスタンスが異なることが
>> 分かっています。
>>
>> またDtoでは下記の様に
>>
>> @Component(instance = InstanceType.SESSION)
>> public class UserContextDto implements Serializable {
>>
>> Actionでは親クラスで下記の様にしています。
>>
>> @Resource
>> protected UserContextDto userContextDto;
>>
> これだけの情報だと良くわからないですね。
> なぜなら、再現できないからです。
> sa-struts-tutorialで再現できるようにしていただくと
> 助かります。
>
>> また別件なのですが、ログイン時にセッションを破棄・再作成を行い
>> 上記Dtoを設定するようにしたいのですがSAStrutsではどのように行うのが
>> 最適な方法か、教えていただけないでしょうか。
>>
> ログインしたときにはじめてセッションに格納したいということなら、
> Seasar2にコンポーネントを管理させるのをやめて、
> アクションに
> @Resource
> protected Map<String, Object> sessionScope;
> という、Map経由でセッションにアクセスできるコンポーネントを用意し、
> ログインしたタイミングで、
> UserContextDto userContextDto = new UserContextDto();
> ...
> sessionScope.put("userContextDto", userContextDto);
>
> のように普通のServletと同じような感覚で、プログラミングすると
> 良いのではないかと思います。
>
> あるいは、Seasar2にコンポーネント管理をさせて、ログインした
> タイミングで、loginFlagをonにする手もあります。
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


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