我正在使用Wicket 7.x和History API。我目前正在尝试为“onpopstate”连接一个AjaxEventBehavior。我有代码,每当我做history.pushState时添加一个对象,我的问题是我无法使用onEvent从Java端访问这些额外的信息。
示例pushState:
target.appendJavaScript("history.pushState({query: '" +
searchResults.getQueryString() + "'}, null, window.location.pathname);");
EventBehavior:
this.getPage().add(new AjaxEventBehavior("onpopstate")
{
@Override
protected void onEvent(AjaxRequestTarget target)
{
//code to get query defined in pushState
}
});
updateAjaxAttributes不是解决方案,因为它仅在呈现页面时调用。我需要在调用popstate时发送这些额外的数据。
答案 0 :(得分:1)
updateAjaxAttributes实际上可以帮到你。 AjaxRequestAttributes还允许您指定动态额外属性(有关详细信息,请参阅here)。这些参数在触发AjaxEventBehavior之前在客户端动态计算,并作为请求参数发送。