Wicket处理javascript URL更改

时间:2016-09-08 14:52:00

标签: java html5 wicket wicket-6

我有一个包含地理地图的页面,安装在'/map/#{zoom}/#{lat}/#{lon}'上。地图在'/map/'处可见,但在'/map/z/x/y'处也可以在不同位置居中显示。如果未设置zoomlatlon的全部内容,则会在默认位置显示地图。

平移地图后,使用javascript:history.replaceState({}, "", "/map/z/x/y")

更新当前网址

但是,当在“/ map”访问地图时,所有wicket生成的网址都与'/map'相关,例如主页引用'..'。但是在平移后,主页的相对网址不正确,实际上指向/map/z/x,再次显示地图。

有没有办法强制Wicket生成绝对网址,还是有办法告知Wicket当前网址已更改?

修改 问题也以不同的方式发生。我有一个由/z/x/y坐标定义的预定义概览列表。当z相等时,创建的链接相对于z。但是,当缩放更改时,链接概述的新z值不正确。

实施例

我有两个预定义的概述:A = 10/33/44B = 10/66/77。点击A后,B链接的网址将更改为../../66/77。平移并缩放地图后,(浏览器)URL将更改为4/12/3。点击B的链接后,生成的网址为4/66/77

1 个答案:

答案 0 :(得分:0)

另一种选择是从头开始更新网址!

在页面构造函数中,如果某些参数没有值,则设置默认值:

public MapPage(PageParameters params) {
  super(params); // this is important! 

  String lon = params.get("lon").toString();
  if (lon == null) params.set("lon", DEFAULT_LON);
  // same for lan and zoom
}

这样Wicket会在创建任何链接时使用默认值,实际上会重定向到/map/x/y/z