Wicket 导叶复合特性
我已经创建了一个复合行为——基本上是两个AjaxFormComponentUpdateingBehavior(onBlur和onKeyUp)。可从以下网址获得: 在呈现添加了此行为的组件时,我得到一个异常,指出“[the]Behavior_uu]未注册到此组件”。当从行为的Wicket 导叶复合特性,wicket,Wicket,我已经创建了一个复合行为——基本上是两个AjaxFormComponentUpdateingBehavior(onBlur和onKeyUp)。可从以下网址获得: 在呈现添加了此行为的组件时,我得到一个异常,指出“[the]Behavior_uu]未注册到此组件”。当从行为的onComponentTag()中调用blur.onComponentTag()方法时,会发生异常 有人知道这是为什么吗?我应该提到我正在使用Wicket 1.4.21 谢谢 异常源于RequestCycle#urlFor()
onComponentTag()
中调用blur.onComponentTag()
方法时,会发生异常
有人知道这是为什么吗?我应该提到我正在使用Wicket 1.4.21
谢谢
异常源于RequestCycle#urlFor():
正如Michael已经评论的那样,您的包装行为必须添加到组件中,仅仅调用#bind()是不够的。在您的复合行为的
#bind()
方法中,您为您的blur
和keyUp
调用另一个#bind()
方法,但是,正如@Sven已经提到的那样,调用此方法不足以实现此目的,因为它为行为
创建指向组件
的链接,但组件
仍然不了解这些行为
当您调用component.add(behaviors)
时,会对每个行为的#bind()
方法进行内部调用。这就是你真正需要的
因此,只需替换:
blur.bind(component);
keyUp.bind(component);
通过以下方式:
component.add (blur, keyUp);
尝试将
blur.bind(component)
和keyUp.bind(component)
替换为component.add(blur,keyUp)
。太棒了!成功了。谢谢@MichaelZhavzharov。你想把你的评论移到一个答案上,这样我就可以投票并把问题标记为已回答?我真的很想给你们两个答案,但我先看到了迈克尔的评论。谢谢你们两位。
component.add (blur, keyUp);