[Seasar-user:9999] Re: [Teeda]HTML にない値の引き継ぎについて
Hiroshi Yamamoto
[E-MAIL ADDRESS DELETED]
2007年 8月 21日 (火) 15:10:09 JST
ひがさん
山元です。何度も申し訳ありません。
各Scopeの生存期間の私の理解、添付したテキストファイルに記述したので見ていただい
てよいでしょうか。
その上で下記のように理解しています。
・HTMLのinput等の値はAaaPageにバインディングされる
・BbbPageへの値の引き継ぎは、リダイレクトを挟むためSubApplicationScopeに設定された上で行われる
・SubApplicationScopeへは、HTMLのinput等の値だけでなく、Pageクラス間で対応する全てのプロパティが設定される
このため、doメソッドで設定したプロパティはSubApplicationScopeとなるが、
initializeメソッドではそうならないということですね。
ただ、遷移の方法によってSubApplicationScopeに入ったり、入らなかったりするので、
hiddenにしなくても問題なかったプロパティが遷移の方法が変更になった場合に、値が
引き継がれなくなったりして、混乱することがあるのではないかと思います。
(動作を正しく認識していれば問題ないのですが)
TeedaがPRGパターンであることを考えると、デフォルトのスコープがRedirectScopeであ
ればこういった問題が起こらないと思うのですが、いかがでしょうか。
(互換性を考えるとそういった変更は難しいとは思いますが)
以上、よろしくお願いいたします。
07/08/21 に Yasuo Higa<[E-MAIL ADDRESS DELETED]> さんは書きました:
> ひがです。
>
> > 山元です。
> >
> > ずいぶん悩みましたが、なんとか正解にたどり着いた気がします。
> > 混乱の原因は下記の仕様のためでした。
> >
> > ・HTMLに対応するinputがないプロパティは、明示されない限り、
> SubApplicationScopeに格納されない。
> > ・しかし、doメソッド内で値を設定した場合は、SubApplicationScopeに格納される。
> > ・ただし、initialize及びprerenderメソッド内で値を設定しても、
> SubApplicationScopeには格納されない。
> >
> > 自分としては、この理解で正しいと思っているのですが、問題ありますでしょうか?
> >
> あっているのですが、次のように考えてもらったほうが、
> より実際の動作に一致します。
>
> Pageクラスは、リクエストに格納されるため状態は
> 維持されない。
> そのため、HTMLが描画された後は何の状態も残らない。
>
> サブミット時に状態を復元するためには、
> inputタグやselectタグを使う必要がある。
>
> ある画面から別の画面に遷移する場合、
> 同一のプロパティは、SubApplicationScopeに格納されて
> 維持される。
>
> 3番目のルールは、PRGパターンを使うためにTeedaで
> 追加したものですが、1,2番目のルールは、
> HTML/HTTPの一般的なものです。
>
> Teedaはセッションをできる限り使わないように
> 心がけています。
>
> --
> Yasuo Higa
> [E-MAIL ADDRESS DELETED]
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
-------------- next part --------------
1.aaa.html#doAaa -> AaaPage#doAaa() { return BbbPage.class } -> redirect -> BbbPage#initialize() -> bbb.html
2.<--------------------------------------------------------> <------------------------------>
3.<-------------------------------------------------------------------------------------------------------->
4.<-----------------------------------------------------------------------------------------------| 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 |---->
1〓〓〓Teeda〓〓〓〓〓〓aaa.html〓〓〓〓〓〓bbb.html〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
2〓〓〓PageScode〓〓〓3〓〓〓RedirectScope〓〓〓4〓〓〓SubApplicationScope〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
Seasar-user メーリングリストの案内