[Seasar-user:12630] Re: 【teeda】SubApplicationScopeの更新タイミングについて

Shinpei Ohtani [E-MAIL ADDRESS DELETED]
2008年 1月 25日 (金) 14:14:38 JST


大谷です。

以下を(1)とします。
> 上記のページにおいて、
> 1.aaa.htmlでdataに「ほげ」を入力
> 2.「自分のページ」ボタンを押す
>     (AaaPage#doMyPageTestが動作し、nullを返却)
> 3.SubApplicationScopeのdataは、「ほげ」に更新されている。

以下を(2)とします。
> 次に、
> 1.aaa.htmlでdataに「ほげ」を入力
> 2.「他のページ」を押す。
>     (AaaPage#doOtherPageTestが動作し、BbbPage.classを返却)
> 3.この時点でSubApplicationScopeは更新されず、空のまま
> ※期待していたのは、この時点でSubApplicationScopeの値が更新され、
> その後で画面遷移が発生するという事です。

上記の点サンプルで試してみましたが、更新されそうです。


  (1)のときのログ
  [session]javax.faces.internal.scope.SubApplicationScope={null={org.seasar.teeda.extension.html.PagePersistence.SUBAPPLICATION={data3Name=初期データ,
data2Name=bbbb}}}

  (2)のときのログ
  [session]javax.faces.internal.scope.SubApplicationScope={null={org.seasar.teeda.extension.html.PagePersistence.SUBAPPLICATION={data3Name=初期データ4,
data2Name=bbbb3, data1Name=aaa2}}}

サンプルをみせてもらいましたが、きちんとサブアプリケーションになっていないのでは
ないですか?packageがexamples.teeda.webとなっていたので。

私が試したのは、packageをexamples.teeda.web.subapplicationscopeとして
試してみました。同様にパッケージを変更してもう一度試してみてください。
宜しくお願いします。

08/01/25 に g narumi<[E-MAIL ADDRESS DELETED]> さんは書きました:
> お世話になります。
> 鳴海です。
>
> うまく説明できず長文になってしまいました。申し訳ございません。
>
> SubApplicationScopeの正しい動作を正確に把握していないので、
> 申し訳ないのですが、以下の動きは正しいのでしょうか?
>
> 以下のようなクラス+htmlがあったときに、
> 別の画面に遷移する「do*」メソッドが呼ばれた場合、
> (別の画面には、SubApplicationScopeと同じ名前のプロパティはない)
> SubAplicationScopeの値が更新されません。
>
> ■クラスとhtml
> HTML:aaa.html
> <input type="text" id="data" />
> <input type="submit" id="doMyPageTest" value="自分のページ" />
> <input type="submit" id="doOtherPageTest" value="他のページ" />
>
> CLASS:AaaPage
> public class AaaPage {
>
>         @SubapplicationScope
>         private String data;
>
>         public Class doMyPageTest() {
>                 return null;
>         }
>
>         public Class doOtherPageTest() {
>                 return BbbPage.class;
>         }
>         // その他略
> }
>
> 上記のページにおいて、
> 1.aaa.htmlでdataに「ほげ」を入力
> 2.「自分のページ」ボタンを押す
>     (AaaPage#doMyPageTestが動作し、nullを返却)
> 3.SubApplicationScopeのdataは、「ほげ」に更新されている。
>
> 次に、
> 1.aaa.htmlでdataに「ほげ」を入力
> 2.「他のページ」を押す。
>     (AaaPage#doOtherPageTestが動作し、BbbPage.classを返却)
> 3.この時点でSubApplicationScopeは更新されず、空のまま
> ※期待していたのは、この時点でSubApplicationScopeの値が更新され、
> その後で画面遷移が発生するという事です。
>
> 一応以下のような画面遷移を想定しております。
>
> 入力→→確認→結果
> ↓↑←←
> ↓  ↑
> 検索→選択
>
> この入力画面から、検索画面に遷移した際に、画面上すでに入力されていた
> 値はSubApplicationScopeで保持し、選択後、入力画面に戻って来た際に
> 復元したいからです。
>
> そもそもPageクラスの遷移の組み方がまずいのでしょうか?
>
> 念のためテストを行った、htmlとソースを添付します。
>
> 説明が下手で非常に長くなって申し訳ございません。
> アドバイスいただけると助かります。
> よろしくお願いいたします。
>
> 鳴海
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>
>


-- 
=============================
Shinpei Ohtani
[E-MAIL ADDRESS DELETED]
=============================


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