具有历史记录的 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 被触发之前在客户端动态计算并作为请求参数发送。
我正在使用 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 被触发之前在客户端动态计算并作为请求参数发送。