我遇到了 DropDownChoice 的问题。我必须预先选择一个项目,但我发现的每个教程和示例都只考虑原始类型列表。
我有一个对象列表。
class myObject {
private String name;
private String surname;
[setter and getter]
}
在其他班级
List<MyObject> myList = some_data_retrieve();
MyObject defaultValue = some_simple_data_retrieve();
使用以下构造函数构建 DropDownChoice im:
final DropDownChoice<T> ddc = new DropDownChoice<T>(id, data, new ChoiceRenderer<T>(choiceRendererExpression, choiceRendererIdExpression));
这样:
final DropDownChoice<myObject> ddc = new DropDownChoice<myObject>("wicket_id", myList, new ChoiceRenderer<myObject>("name", "surname"));
现在。在每个教程/示例中,他们使用另一个带有模型的构造函数。例如:
private static final List<String> SEARCH_ENGINES = Arrays.asList(new String[] {
"Google", "Bing", "Baidu" });
private String selected = "Google";
DropDownChoice<String> listSites = new DropDownChoice<String>(
"sites", new PropertyModel<String>(this, "selected"), SEARCH_ENGINES);
我尝试过类似的方法来模拟这种调用:
final DropDownChoice<myObject> ddc = new DropDownChoice<myObject>("wicket_id", new PropertyModel<myObject>(this,"defaultValue"),myList, new ChoiceRenderer<myObject>("name", "surname"));
但我得到的是一个错误:
No get method defined for class: package$WicketPage expression: defaultValue
请帮我理解。
谢谢