具有历史记录的 Wicket AjaxEventBehavior API

Wicket AjaxEventBehavior with History API

我正在使用 Wicket 7.x 和历史记录 API。我目前正在尝试为 "onpopstate" 连接一个 AjaxEventBehavior。我的代码会在我执行 history.pushState 时添加一个对象,我的问题是我无法使用 onEvent 从 Java 端访问这些额外信息。

示例推送状态:

target.appendJavaScript("history.pushState({query: '" + 
searchResults.getQueryString() + "'}, null, window.location.pathname);");

事件行为:

this.getPage().add(new AjaxEventBehavior("onpopstate")
{     
     @Override
     protected void onEvent(AjaxRequestTarget target)
     {
         //code to get query defined in pushState
     }
});

updateAjaxAttributes 不是解决方案,因为它仅在呈现页面时调用。我需要在调用 popstate 时发送这些额外数据。

updateAjaxAttributes 实际上可以帮助您。 AjaxRequestAttributes 还允许您指定动态的额外属性(有关详细信息,请参阅 here)。这些参数在 AjaxEventBehavior 被触发之前在客户端动态计算并作为请求参数发送。