一尘不染

如何从Wicket的JavaScript代码中调用Java代码?

java

如果可以的话,如何在Wicket的JavaScript代码中调用Java代码(例如方法)。


阅读 190

收藏
2020-12-03

共1个答案

一尘不染

呃 正确的答案应该是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

2020-12-03