呃 正确的答案应该是ajax回调。您可以手动将js编码为挂钩到wicket js,也可以在java中通过wicket组件设置回调。例如,从AjaxLazyLoadPanel中:
component.add( new AbstractDefaultAjaxBehavior() {
@Override
protected void respond(AjaxRequestTarget target) {
// your code here
}
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead( response );
response.renderOnDomReadyJavascript( getCallbackScript().toString() );
}
}
本示例说明如何将回调代码添加到Wicket中的任何组件。在浏览器中触发OnDomReady事件后,加载页面时,Wicket将使其js进行处理,并使用Ajax回调到上面显示的“ respond”方法中,此时您可以在服务器,并可能将组件添加到要重新呈现的ajax目标中。
要从js手动进行操作,您可以通过将getCallbackScript()。toString()打印到wicket组件上的属性上,从而进入wicket的系统,然后您就可以从js访问它。使用wicket的wicketAjaxGet从wicket- ajax.js手动从js调用此url。
请查看邮件列表,以获取有关此主题的大量讨论:http : //www.nabble.com/Wicket-and-javascript- ts24336438.html#a24336438