[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 メーリングリストの案内