如果可以的话,如何在Wicket的JavaScript代码中调用Java代码(例如方法)。
呃 正确的答案应该是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