gpt4 book ai didi

java - Wicket AutoCompleteTextField 模型转换

转载 作者:行者123 更新时间:2023-11-29 05:46:39 24 4
gpt4 key购买 nike

看起来自动完成文本字段的模型对象是一个字符串,即使它应该是一个员工,导致无法从字符串转换为员工的异常。为什么?如何解决?

        final DefaultCssAutocompleteTextField<Employee> field = new DefaultCssAutocompleteTextField<Employee>("field", new Model<Employee>(model.getObject().getMatch().getSupervisor())) {
@Override
protected Iterator<Employee> getChoices(String input) {
if (Strings.isEmpty(input)){
List<Employee> emptyList = Collections.emptyList();
return emptyList.iterator();
}
return supervisorDao.getAutoCompleteCapableSupervisors(input, 6).iterator();
}
};

form.add(field);

field.add(new AjaxFormSubmitBehavior(form, "onchange") {
@Override
protected void onSubmit(AjaxRequestTarget target) {

//this generates an exception: cant cast from string to employee. why? and how can it be fixed?
Employee e = supervisorService.findOne(field.getModelObject().getId());

//do some stuff with the employee and some components

}

@Override
protected void onError(AjaxRequestTarget target) {
//do nothing
}
});

最佳答案

AutoCompleteTextfield 的 javadoc 说:

To convert input back into a non-String type you will have to provide a custom IConverter, either by overriding #getConverter(Class) or by setting a suitable IConverter on the application's ConverterLocator.

关于java - Wicket AutoCompleteTextField 模型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15653008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com