Man*_*áoz 5 java wicket web-applications autocomplete
这个问题是这样的:处理wicket中的AutoCompleteTextField的onchange事件
我正在尝试将AutoCompleteTextField与自定义类一起用作泛型类型,并添加AjaxFormComponentUpdatingBehavior.我的意思是我想要一个
AutoCompleteTextField<SomeClass> myAutoComplete = ...;
Run Code Online (Sandbox Code Playgroud)
然后添加一个AjaxFormComponentUpdatingBehavior:
myAutoComplete.add(new AjaxFormComponentUpdatingBehavior("onchange") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
System.out.println( "Value: "+getValue() );
}
});
Run Code Online (Sandbox Code Playgroud)
问题在于,由于某种原因,添加该行为会使表单尝试使用String设置模型对象(即使AutoCompleteTextField具有泛型类型的SomeClass),当onchange事件触发时会导致ClassCastException.
AutoCompleteTextField没有它可以使用AutoCompleteTextField<String>吗?我找不到任何例子.谢谢你的时间!
并感谢用户biziclop在这件事上的帮助.
这与事件处理程序无关,它是由组件中缺少模型类型引起的.
表单组件可以从3个来源派生模型类型:
PropertyModel或a,则自动解决它CompoundPropertyModel.setType()方法.这些是你的选择,你可以选择三种中的任何一种,但我认为1优于2,优于3.
更新:您可能已经知道这一点,但如果您的自定义类是自定义的,您还需要一个IConverter处理String < - > Someclass转换:您可以将其注册到应用程序或覆盖组件的getConverter(Class<?> clazz )方法以返回它.