[Wicket-ja-user 413] Re: (Ajax)PagingNavigatorでのExpireエラー

Back to archive index

A. Mashida mashi****@topic*****
2010年 2月 2日 (火) 14:38:20 JST


増田です。

矢野さんの方針通り、Mozilla, Firefox, Safariの場合、

> response.setHeader("Pragma", "no-cache");
> response.setHeader("Cache-Control", "no-cache, max-age=0, must-revalidate, no-store");

とヘッダを加えて、キャッシュを切ることでExpireエラーを回避できました。
すっきりしました。

なお、内部でやっていることは、いただいたソースと同じだと思いますが、

((WebClientInfo)getRquestCycle().getClientInfo()).getProperties()

で、ClientPropertiesのインスタンスを取得し、

isBrowserMozillaFirefox(), isBrowserMozilla(), isBrowserSafari()
などのメソッドを使用しました。

また、キャッシュを切ることで、バックボタンで戻った場合、
PageableListViewのページが常に1ページ目にリセットされるように
なったので、PageableListViewのonAfterRender()をオーバーライドして、
getCurrentPage()でページ番号を保存し、ページのコンストラクターで、
保存したページ番号をsetCurrentPage()に渡して再現させるようにしました。

PageableListView<hoge> list_view = new PageableListView<hoge>("list", list, MAX_LEN) {
.......
	@Override
	protected void populateItem(ListItem<hoge> item) {
.......
	}
.......
	@Override
	protected void onAfterRender() {
		super.onAfterRender();
		page_number = getCurrentPage();
	}
};
list_view.setCurrentPage(page_number);
this.add(list_view);

-- 
/// A. Mashida ( mashi****@topic***** ) ///




Wicket-ja-user メーリングリストの案内
Back to archive index