ApacheWicket可书签url向链接添加了一个附加参数,为什么?

ApacheWicket可书签url向链接添加了一个附加参数,为什么?,wicket,wicket-1.5,wicked-pdf,wicket-1.6,Wicket,Wicket 1.5,Wicked Pdf,Wicket 1.6,我的地图是 mountPage/page/{code}/{name},page.class 但是当我点击链接时 localhost/page/10/toy?2 wicket还添加了一个参数,比如计数器,当我刷新我拥有的页面时 localhost/page/10/toy?3 为什么? 这是因为您的页面是有状态的,Wicket通过附加此计数器来管理自己的页面状态。这样,当您的用户使用其浏览器内置功能向后导航时,页面将显示以前的页面 如果您不想在URL中包含这样的参数,您需要挖掘并消除页面中的每个有状

我的地图是

mountPage/page/{code}/{name},page.class

但是当我点击链接时

localhost/page/10/toy?2

wicket还添加了一个参数,比如计数器,当我刷新我拥有的页面时

localhost/page/10/toy?3


为什么?

这是因为您的页面是有状态的,Wicket通过附加此计数器来管理自己的页面状态。这样,当您的用户使用其浏览器内置功能向后导航时,页面将显示以前的页面

如果您不想在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);
    }
}

谢谢你,我怎么能做这个?params.addlink,components.getModelObject.getPermalink;params.addcode,code;Link Link=newbookmarkablepagelink,OrderPage.class,params;link.addnew Labellinksel,选择;components.addlink;我只需单击url和第二页扩展Basepage,您可以通过在基本页中定义getStateshint并返回true来帮助Wicket。恐怕您需要启动调试器才能找到哪个组件是有状态的,以便在您的url中禁止此操作。我们如何从url中删除该计数器?
mount(new MountedMapperWithoutPageComponentInfo("/page/#{code}/#{name}", Page.class));