当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何从Wicket中的JavaScript代码调用Java代码?》经验,为你挑选了2个好方法。

如果我能做到这一点,我如何在Wicket的JavaScript代码中调用Java代码(例如方法).



1> Antony Stubb..:

ERK.正确的答案是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中的任何Component.在您的浏览器中触发OnDomReady事件后,在加载页面时,Wicket将使其成为js enging,使用Ajax回调您的代码到上面显示的"响应"方法,此时您可以在服务器,并可能将组件添加到要重新呈现的ajax目标.

要从js手动执行此操作,您可以通过将getCallbackScript().toString()打印到wicket组件上的属性来挂钩到wicket的系统,然后您可以从js访问该属性.用wicket的wicketAjaxGet从wicket-ajax.js手动调用来自js的这个url.

查看关于此主题的大量对话的邮件列表:http: //www.nabble.com/Wicket-and-javascript-ts24336438.html#a24336438



2> tetsuo..:

摘录自https://cwiki.apache.org/WICKET/calling-wicket-from-javascript.html

如果您添加任何扩展AbstractDefaultAjaxBehavior的类到您的页面,wicket-ajax.js将被添加到您的网页的标题中.wicket-ajax.js为您提供了两种调用组件的基本方法:

function wicketAjaxGet(url, successHandler, failureHandler, precondition, channel)

function wicketAjaxPost(url, body, successHandler, failureHandler, precondition, channel)

这是一个例子:

JavaScript的

function callWicket() {
   var wcall = wicketAjaxGet('$url$' + '$args$', function() { }, function() { });
}

$url$从该方法获得abstractDefaultAjaxBehavior.getCallbackUrl().如果将从该方法返回的String粘贴到浏览器中,则将调用respond方法,这同样适用于javascript方法.

您可以选择通过将这些参数附加到URL字符串来添加参数.他们采取的形式&foo=bar.

你在Java响应方法中得到可选参数,如下所示:

Map map = ((WebRequestCycle) RequestCycle.get()).getRequest().getParameterMap();

或这个:

String paramFoo = RequestCycle.get().getRequest().getParameter("foo");

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有