Tsutomu YANO
t_yano****@me*****
2010年 2月 1日 (月) 17:02:35 JST
矢野です。 おそらく、ブラウザキャッシュのせいだと思います。Wicketは標準でno-cacheヘッダをつけてレスポンスを返しますが、Firefoxはno-cacheだけではキャッシュ抑止できないらしいです。Firefoxでは、Cache-Controlヘッダにno-storeという設定がされていれば、ブラウザキャッシュの使用を抑止できます。 私のチェックした範囲では、Apple Safariでもno-storeがないとブラウザキャッシュを使用します。Safariがそうだということは、もしかしたらWebKit系は全部そうかもしれません(Google Chromeとか) ブラウザキャッシュに入ってるHTMLに書かれているURLはすでに存在しないページ番号を指している場合があり、Page Expiredになってしまいます。 対応方法は、WebPageクラスのsetHeader(WebResponse)メソッドをオーバーライドして、ヘッダを書き換えます。 例: @Override protected void setHeaders(WebResponse response) { String userAgent = getWebRequestCycle().getWebRequest().getHttpServletRequest().getHeader("User-Agent"); if (userAgent != null) { String lowerUserAgent = userAgent.toLowerCase(); if (lowerUserAgent.contains("firefox") || lowerUserAgent.contains("safari")) { response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache, max-age=0, must-revalidate, no-store"); return; } } super.setHeaders(response); } userAgentの判定は適当なので、もっと適切な判定があるかと思います(webkitで判定するとか) もし作成中のアプリケーションで、全アプリケーションにまたがって使用しているBasePageのようなクラスがあるならば、そこで上記のようにsetHeaderをオーバーライドすればいいでしょう。 私はそのように設定しています。 お試しください。 --------------------- 矢野 勉(やの つとむ) t_yano****@me***** benbr****@mac***** 10/02/01 (月曜日) 02:57PM、 "A. Mashida" <mashi****@topic*****>のメッセージ: >増田と申します。 > >PageableListViewとAjaxPagingNavigatorを使用していて、以下のような現象が起きています。 > >1. PageableListViewとAjaxPagingNavigatorを使っているページを表示。 >2. ページ内のリンクから別ページに遷移 >3. ブラウザのバックボタンで戻る >4. AjaxPagingNavigatorの、ナビゲージョン・リンクをクリック >5. Page Expire エラーが発生 > >○現象は、確実に再現します。 >○ただし、バックボタンを使わずにリンクやフォームで遷移して、該当ベージを開いた場合には、 >発生しません。 >○PagingNavigatorでも、同様の現象が起きます。ただし、AJaxPagingNavigatorの場合、 >ページをリロードすると発生しなくなります。 >○Firefox(3.5系)で発生し、IE(8)では発生しません。 >○FirefoxのError Consoleには、syntax errorが出ていますが、そこには、 > >Error: syntax error >Source File: >http://localhost/wicket_test/?wicket:interface=:15:table:navigate:navigation:0:pageLink::IBehaviorListener:0:2&random=0.15720129801295413 >Line: 1, Column: 1 >Source Code: >- > >と表示されており、コンソール内のURLをクリックすると、Expire エラーのページソースが表示されます。 >(エラー個所の表示は空です)。なお指定されているソースの「Line: 1, Column: 1]の内容は > ><?xml version="1.0" encoding="UTF-8"?> > >です。 > >色々調べましたが、海外のボードで同様の質問があったものの『未回答』でした。 >どのような原因が考えられるでしょうか。よろしく、お願いします。 > >-- >/// A. Mashida ( mashi****@topic***** ) /// > >_______________________________________________ >Wicket-ja-user mailing list >Wicke****@lists***** >http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user > >