我的地圖是Apache Wicket書籤式網址爲鏈接添加了一個附加參數,爲什麼?
mountPage(「/ page /#{code} /#{name}」,Page.class);
,但是當我的聯繫
localhost/page/10/toy?2
檢票口還加一個參數就像一個計數器,點擊,當我刷新頁面我有
localhost/page/10/toy?3
爲什麼呢?
我的地圖是Apache Wicket書籤式網址爲鏈接添加了一個附加參數,爲什麼?
mountPage(「/ page /#{code} /#{name}」,Page.class);
,但是當我的聯繫
localhost/page/10/toy?2
檢票口還加一個參數就像一個計數器,點擊,當我刷新頁面我有
localhost/page/10/toy?3
爲什麼呢?
這是因爲你的頁面是有狀態的,檢票通過附加這個「反」管理自己的狀態到您的網頁。這樣,當您的用戶使用瀏覽器內置的功能性向後導航時,該頁面就會顯示出它以前的位置。
如果你不想在你的URL這樣的參數,你需要挖掘出,並在頁面中消滅每一種狀態組件。
您可以在應用類中創建
public class MountedMapperWithoutPageComponentInfo extends MountedMapper {
public MountedMapperWithoutPageComponentInfo(String mountPath, Class<? extends IRequestablePage> pageClass) {
super(mountPath, pageClass, new PageParametersEncoder());
}
@Override
protected void encodePageComponentInfo(Url url, PageComponentInfo info) {
}
@Override
public Url mapHandler(IRequestHandler requestHandler) {
if (requestHandler instanceof ListenerInterfaceRequestHandler) {
return null;
} else {
return super.mapHandler(requestHandler);
}
}
}
和地圖頁面這樣
mount(new MountedMapperWithoutPageComponentInfo("/page/#{code}/#{name}", Page.class));
謝謝你,我怎麼能唯一呢? params.add(「link」,components.getModelObject()。getPermalink()); params.add(「code」,code); 鏈接鏈接=新BookmarkablePageLink( 「鏈接」, OrderPage.class,則params); (new Label(「linksel」,「Select」)); components.add(link); 我只需點擊網址和第二頁擴展BasePage的 –
你可以在你的基本頁面定義'getStatelessHint()'返回true幫助檢票。恐怕你需要啓動調試器才能找到哪個組件是有狀態的,以便在你的url中禁止這個組件。 –
啊很好用了很多statefull組件,無論如何感謝 –