Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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
Wicket AjaxFallbackLink行为_Wicket - Fatal编程技术网

Wicket AjaxFallbackLink行为

Wicket AjaxFallbackLink行为,wicket,Wicket,我将AjaxFallbackLink组件用于Ajax链接。当我将鼠标移到链接上时,URL看起来类似于./myPage?1-1.ILinkListener-xxx。但是,当我实际单击链接时,Ajax请求看起来像:./myPage?1-1.IBehaviorListener-xxx Wicket JavaScript似乎以某种方式将URL从ILinkListener更改为IBehaviorListener。不知道是不是这样,为什么 有时在某些情况下,当浏览器发出请求时,URL中的ILinkListe

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

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


有时在某些情况下,当浏览器发出请求时,URL中的ILinkListener不会更改为IBehaviorListener,这会导致NullPointerException,因为回调函数中的参数AjaxRequestTarget为null。我无法复制这个。只是想知道是什么浏览器设置导致了这种情况。非常感谢。

这两个URL都是正确的

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

第二个AJAX链接地址“/myPage?1-1.IBehaviorListener xxx”是一种通用的JavaScript/AJAX行为。如果JavaScript正在工作,JavaScript将作为onclick事件附加(请参阅中的jQuery click()函数)并处理链接,那么它不应继续处理HREF属性中的URL

到目前为止,您希望在单击链接时只请求其中一个URL。但在AjaxFallbackLink的情况下,当没有AJAX时,onClick(AjaxRequestTarget)作为onClick(null)调用,如果依赖现有的AjaxRequestTarget对象,则会导致NPE,但这并不能保证

你问题的最后一部分不清楚什么时候不可能重现。但是Wicket使用jQuery,如果将jQuery库添加到HTML中,则可能存在版本冲突


上有关于类似问题的更多细节,这两个URL都是正确的

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

第二个AJAX链接地址“/myPage?1-1.IBehaviorListener xxx”是一种通用的JavaScript/AJAX行为。如果JavaScript正在工作,JavaScript将作为onclick事件附加(请参阅中的jQuery click()函数)并处理链接,那么它不应继续处理HREF属性中的URL

到目前为止,您希望在单击链接时只请求其中一个URL。但在AjaxFallbackLink的情况下,当没有AJAX时,onClick(AjaxRequestTarget)作为onClick(null)调用,如果依赖现有的AjaxRequestTarget对象,则会导致NPE,但这并不能保证

你问题的最后一部分不清楚什么时候不可能重现。但是Wicket使用jQuery,如果将jQuery库添加到HTML中,则可能存在版本冲突


有关类似问题的更多详细信息,请访问

谢谢Martin。正如您所提到的,在AjaxFallbackLink的情况下可能没有AJAX。这正是我问题的最后一部分,如何在现代浏览器中实现这一点,即没有AJAX,但启用了JavaScript?以防万一。这可能是由不同的问题引起的,例如,如果您添加其他行为或停止JS事件传播或类似操作,则重写或复制对jQuery(JS库)的引用,或替换链接上的onClick函数。我会检查:1)HTML标题中是否只有一个jQuery,2)链接上是否没有其他行为?3)HTML标题中是否只有一个onClick事件附加到链接?4) 在我的例子中,Ajax行为是预期的,事实上它在我的所有浏览器中都能正常工作;但是对于一些用户,根据Tomcat访问日志,使用了通用链接。因此,唯一的区别在于浏览器端。我现在尝试禁用Ajax,但JavaScript保持启用状态。稍后我会继续讨论这个问题。好的,在阅读您的评论之后:如果jQuery还没有加载(例如网络问题),那么使用简单的HTML链接。我明白了。听起来是这样的。谢谢马丁,谢谢马丁。正如您所提到的,在AjaxFallbackLink的情况下可能没有AJAX。这正是我问题的最后一部分,如何在现代浏览器中实现这一点,即没有AJAX,但启用了JavaScript?以防万一。这可能是由不同的问题引起的,例如,如果您添加其他行为或停止JS事件传播或类似操作,则重写或复制对jQuery(JS库)的引用,或替换链接上的onClick函数。我会检查:1)HTML标题中是否只有一个jQuery,2)链接上是否没有其他行为?3)HTML标题中是否只有一个onClick事件附加到链接?4) 在我的例子中,Ajax行为是预期的,事实上它在我的所有浏览器中都能正常工作;但是对于一些用户,根据Tomcat访问日志,使用了通用链接。因此,唯一的区别在于浏览器端。我现在尝试禁用Ajax,但JavaScript保持启用状态。稍后我会继续讨论这个问题。好的,在阅读您的评论之后:如果jQuery还没有加载(例如网络问题),那么使用简单的HTML链接。我明白了。听起来是这样的。谢谢你,马丁。