I've managed to replicate this w3schools example for jQuery AJAX using Resource mounting in Wicket.
However, I still want to know if there are better ways of handling arbitrary AJAX requests.
答案 0 :(得分:1)
如果您希望对发送的内容进行低级别控制。 AbstractAjaxBehavior
可能或多或少都是您正在寻找的。你可以做点什么
public class MyAjaxBehavior extends AbstractAjaxBehavior{
@Override
public void onRequest() {
RequestCycle.get().scheduleRequestHandlerAfterCurrent(
new TextRequestHandler("application/json", "UTF-8", "{myVal:123}")
);
}
};
您可以将TextRequestHandler
替换为其他请求处理程序(或自己编写)以准确返回所需的数据。
如果您希望编写自己的javascript处理ajax,可以查看Wicket Ajax wiki page,其中描述了如何手动调用此ajax(您可以通过AbstractAjaxBehavior#getCallbackUrl()
获取回调URL)
如果你真正想要的只是更新显示 - 更新wicket组件的高级ajax就是你想要的。大多数Wicket Ajax行为(如AjaxEventBehavior
)附加了自己的ajax调用,您根本不需要执行javascript方面的操作。您需要做的就是将组件添加到提供的AjaxRequestTarget
,wicket将完成剩下的工作,更新组件自动显示的内容。
然而,这两种方法都会访问该页面,如果这不是您想要的,那么资源安装是可行的方法。