[Seasar-user:20296] Re: [Ymir] WindowId、WindowScopeの使い方について
YOKOTA Takehiko
[E-MAIL ADDRESS DELETED]
2010年 11月 1日 (月) 17:07:45 JST
西山さん
横田です。こんにちは。
windowIdの機能を使うには、GETでもPOSTでも、パラメータにwindowIdを付与しておく必要があります。
ですので
> postする際に、「input type="hidden"」に「name="org.seasar.ymir.window"
> value="bWindow"」を設定してみましたが、
> リクエストのwindowIdは_selfになってしまいました。
設定したというところはOKなのですが、設定したwindowIdが使用されないというのはおかしい
ので、こちらで調べてみます。お待ち下さい。
> Ymirでは、WindowIdごとにSessionScopeやConversationScopeにデータを持てそうでしたのでこのような作りにしたのですが、
> そもそも対応していないとかでしたら、SessionScopeだけを利用したいと思います。
ConversationはwindowIdごとに管理しています。パラメータにwindowIdをつけておけば自動的に
ConversationがwindowIdごとに分かれるイメージです。
セッションはwindowIdごとに管理していません。windowIdごとにデータを持たせたい
場合は直接WindowScopeにデータを格納したり取り出したりする必要があります。ちなみに
windowScopeのライフサイクルの長さはセッションと同じです(windowIdに紐付けたデータは
セッションを破棄すると削除されます)。
以上よろしくお願いします。
(2010/10/31 17:01), 西山はじめ wrote:
> お世話になっております。西山です。
>
> Ymirで開発を行っておりますが、WindowScope、WindowIdの使い方がイマイチ分かりません。
>
> やりたいことは、次のとおりです。
> 1. 検索画面(A)で検索、一覧をページング表示
> 2. Aからリンクで「別ウィンドウ」の検索画面(B)を表示
> 3. Bの検索結果を、JavaScriptでA画面に戻す。
> ということです。
> A画面、B画面のそれぞれでConversationScopeを利用しています。
>
> 1→2は、target="bWindow"かつ、GETパラメータで 「org.seasar.ymir.window="bWindow"」と渡すことで、
> A画面とB画面でWindowIdを分けることが出来ました。
>
> しかし、その後2で検索用にpostを行うと、windowIdが"_self"(デフォルト)になってしまいます。
>
> postする際に、「input type="hidden"」に「name="org.seasar.ymir.window"
> value="bWindow"」を設定してみましたが、
> リクエストのwindowIdは_selfになってしまいました。
>
> formのactionに「B.html?org.seasar.ymir.window"
> value="bWindow」を付加してpostするとWindowIdは「bWindow」になりました。
>
> そもそもの使い方が悪いのか、情報がありませんでしたので質問させていただきました。
>
> Ymirでは、WindowIdごとにSessionScopeやConversationScopeにデータを持てそうでしたのでこのような作りにしたのですが、
> そもそも対応していないとかでしたら、SessionScopeだけを利用したいと思います。
>
> 環境は次の通りです。
> Ymir 1.0.7-SNAPSHOT
> DBFlute 0.9.7.5-SNAPSHOT
> Seasar 2.4.43
> Tomcat6.x
>
> Oracle 11g(11.1.0.6.0)
>
> 以上よろしくお願いいたします。
>
> --
> 西山はじめ
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内