Wicket AjaxFallbackLink 行为

Wicket AjaxFallbackLink behaviour

我将 AjaxFallbackLink 组件用于 Ajax link。当我将鼠标悬停在 link 上时,URL 看起来类似于 ./myPage?1-1.ILinkListener-xxx。但是,当我实际单击 link 时,Ajax 请求看起来像:./myPage?1-1.IBehaviorListener-xxx.

Wicket JavaScript 似乎以某种方式将 URL 从 ILinkListener 更改为 IBehaviorListener。不知道是不是这样,为什么会这样?

有时在某些情况下URL中的ILinkListener在浏览器发出请求时没有更改为IBehaviorListener,导致NullPointerException因为参数Ajax回调函数中的RequestTarget target为null .我无法重现这一点。只是想知道什么浏览器设置会导致这种情况发生。非常感谢。

这两个 URL 都是正确的。

第一个静态link地址'./myPage?1-1.ILinkListener-xxx.'是 link 的通用 link 地址,以防它调用 URL 并处理 link.

第二个AJAXlink地址'./myPage?1-1.IBehaviorListener-xxx'是通用的JavaScript/AJAX 行为。如果 JavaScript 正在工作,JavaScript 将作为 onclick 事件附加(请参阅 https://api.jquery.com/click/ 处的 jQuery click() 函数)并处理 link ,那么它不应该继续处理来自 HREF 属性的 URL。

到目前为止,您可能希望在单击 link 时仅请求其中一个 URL。但是在没有 AJAX 的 AjaxFallbackLink 的情况下,onClick(AjaxRequestTarget) 被调用为 onClick(null),如果你依赖现有的 AjaxRequestTarget 对象,它会导致 NPE,但不能保证。

你问题的最后一部分不清楚什么时候无法重现。但是Wicket使用jQuery,如果你把jQuery库添加到HTML,可能会有版本冲突。

http://apache-wicket.1842946.n4.nabble.com/AjaxFallbackLink-s-onClick-with-null-AjaxRequestTarget-migrating-1-4-to-6-td4652143.html

中有关于类似问题的更多详细信息