Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将JSON从wicket传递到JavaScript?_Javascript_Ajax_Wicket - Fatal编程技术网

如何将JSON从wicket传递到JavaScript?

如何将JSON从wicket传递到JavaScript?,javascript,ajax,wicket,Javascript,Ajax,Wicket,我在java脚本页面中有以下调用wicket ajax的函数: function callWicketPage() { wicketAjaxGet( urlCallback, function() {alert('success'); }, function() { alert('failed'); });

我在java脚本页面中有以下调用wicket ajax的函数:

function callWicketPage() {  
                wicketAjaxGet(
                urlCallback,
                function() {alert('success'); },
                function() { alert('failed');
                }); 
            }
在wicket页面中,我执行以下操作:

   final AbstractDefaultAjaxBehavior behave = new AbstractDefaultAjaxBehavior() { 
    @Override
    public void renderHead(IHeaderResponse ihr) {
        super.renderHead(ihr);
        ihr.renderJavascript("var urlCallback = '" + this.getCallbackUrl() + "';", "insertedjavascript");
    } 
        protected void respond(final AjaxRequestTarget target) { 
        }
    };
    add(behave);

我想要的是将wicket页面的json响应发送回JavaScript,我该如何做\?

我建议您改用
ResourceReference
,这样您就不必获得对页面实例的读/写访问权限(并挂载它以便从客户端脚本更容易地访问)

但如果您希望保留基于行为的解决方案:

class JsonBehavior extends AbstractDefaultAjaxBehavior {

    @Override
    protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
        super.updateAjaxAttributes(attributes);

        // please define the channel type (default: queue)
        attributes.setChannel(new AjaxChannel("json"));
    }

    @Override
    protected void respond(AjaxRequestTarget target) {
        RequestCycle rc = RequestCycle.get();

        rc.replaceAllRequestHandlers(new TextRequestHandler("application/json", "UTF-8", "{'json':'content'}"));
    }
}