Apache Wicket可收藏的网址为链接添加了一个额外的参数,为什么?

时间:2013-04-06 21:35:28

标签: 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

为什么呢?

2 个答案:

答案 0 :(得分:6)

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

如果您不想在网址中使用此类参数,则需要挖掘并根除网页中的每个有状态组件。

答案 1 :(得分:1)

您可以创建

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);
    }
}

}

和Application类的地图页面一样

mount(new MountedMapperWithoutPageComponentInfo("/page/#{code}/#{name}", Page.class));