Tsutomu Yano
benbr****@mac*****
2008年 7月 24日 (木) 03:49:15 JST
矢野です。 一つ関係ありそうなところを見つけたので報告しておきます。 PageクラスのonBeforeRender()メソッドに次のようなコメントがあります。 // If any of the components on page is not stateless, we need to bind the session // before we start rendering components, as then jsessionid won't be appended // for links rendered before first stateful component ページがステートレスだった場合(ステートフルコンポーネントが一つもない場合)、 ページレンダリングの前にセッションのbind()が行われないため、リンクのjessionidが 付与されてしまうのかもしれません。 コンストラクタの中でbindすることによってセッションが維持されるようになったのであれば、 おそらくそのページはステートレスなのでしょう。 ならば、松葉さんの指摘するように「BookmarkablePageLinkのgetStatelessHint()をオーバー ライドしてステートフルコンポーネントとみなす」のは有効かもしれません。 onBeforeRenderの段階でステートフルのコンポーネントが一つでもあれば、リクエストごとに 必ずセッションがbindされるのでセッションが維持されるのではないでしょうか。 コメントを見る限りでは、この方法であればjsessionidがlinkにつけられることがないように 見えます。 すみません、ためしてないまま書いています。 --------------------------------------------------- 矢野 勉(やの つとむ) 電子メール:benbrand_at_mac.com ---------------------------------------------------