How should I handle arbitrary AJAX requests in Wicket 7?

时间:2016-10-20 18:33:28

标签: jquery ajax wicket

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.

1 个答案:

答案 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将完成剩下的工作,更新组件自动显示的内容。

然而,这两种方法都会访问该页面,如果这不是您想要的,那么资源安装是可行的方法。