有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Wicket处理javascript URL更改

我在{}上有一页地理地图。地图在'/map/'处可见,但也在'/map/z/x/y'处可见,中心位于不同的位置。如果未设置所有zoomlatlon,则会在默认位置显示地图

平移地图时,当前URL将使用javascript更新:history.replaceState({}, "", "/map/z/x/y")

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

有没有办法强制Wicket生成绝对url,或者有没有办法通知Wicket当前url已更改

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

示例:

我有两个预定义的概述:A = 10/33/44B = 10/66/77。单击AB链接的URL更改为../../66/77。当地图被平移和缩放时,(浏览器)URL将更改为4/12/3。单击指向B的链接时,生成的URL为4/66/77


共 (1) 个答案

  1. # 1 楼答案

    另一个选项是从一开始就更新url

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

    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