【发布时间】:2018-04-12 05:59:29
【问题描述】:
在此示例中,我已设法使用选项 A 从 Javascript 调用我的 Wicket 6 Java 代码:https://stackoverflow.com/a/42612027/1047418
但是,我一直无法找到将数据从 Java 端返回到 JavaScript 的示例(生成的 JavaScript 回调函数甚至不包含 return 语句)。如何实现?
编辑:我不想在 Java 中设置属性,正如我已经解释过的,从 JavaScript 调用 Wicket 不是问题所在。我正在尝试根据 Ajax 请求将一个 JSON 对象从 Wicket 返回到浏览器。
Edit2:按照 martin-g 的示例,我拼凑了这个工作示例...
Java
public class MyAjaxBehaviour extends AbstractDefaultAjaxBehavior {
@Override
protected void onComponentTag(ComponentTag tag) {
super.onComponentTag(tag);
tag.put("aprachatcallbackurl", getCallbackUrl());
}
@Override
protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
super.updateAjaxAttributes(attributes);
attributes.setDataType("json");
attributes.setWicketAjaxResponse(false);
}
@Override
protected void respond(AjaxRequestTarget target) {
getComponent().getRequestCycle().replaceAllRequestHandlers(
new TextRequestHandler("application/json", "UTF-8", "{...JSON GOES HERE...}));
}
}
JavaScript
var mySuccessCallback = function(param1, param2, data, statusText) {
// Data contains the parsed JSON object from MyAjaxBehaviour.respond(...)
...
}
var myFailureCallback = function() {
...
}
Wicket.Ajax.get({
"u": callbackUrl,
"dt": "json",
"wr": false,
"sh": [mySuccessCallback],
"fh": [myFailureCallback]
});
Wicket 7 Reference 错误地指示在 JavaScript 调用中使用“wr”而不是“dt”的主要问题。 :)
【问题讨论】:
-
RobAu,反过来。我需要将一个 JSON 对象从 Wicket 返回到浏览器,作为对 Ajax 请求的响应。
-
您需要从 (Wicket) 应用程序请求返回一些 JSON 数据的 url?你可以创建并挂载一个
Resource然后链接到它?
标签: javascript java wicket wicket-6