Java 在dropdownChoice中设置默认模型对象?
我有一个listView来列出数据库中的一个表,还有一个列来编辑一行。编辑链接将响应设置为编辑页面。编辑页的构造函数接受与数据库表相关的对象。我在编辑页面中有一个下拉选项。我想用对象的实际值来初始化dropdownchoice的选定值,而不是“选择一个”选项。 groupDropDownChoice.setModelObject(user.getGroupId());不处理这个问题。我尝试了user.getGroupName(),但只使用了user对象,它们都不起作用。怎么办?谢谢Java 在dropdownChoice中设置默认模型对象?,java,wicket,Java,Wicket,我有一个listView来列出数据库中的一个表,还有一个列来编辑一行。编辑链接将响应设置为编辑页面。编辑页的构造函数接受与数据库表相关的对象。我在编辑页面中有一个下拉选项。我想用对象的实际值来初始化dropdownchoice的选定值,而不是“选择一个”选项。 groupDropDownChoice.setModelObject(user.getGroupId());不处理这个问题。我尝试了user.getGroupName(),但只使用了user对象,它们都不起作用。怎么办?谢谢 public
public editUserPage(final User user) {
super();
try {
DatabaseApp db = new DatabaseApp();
groupTypes = db.getGroups();
hospitals = db.getHospitals();
polikliniks = db.getPolikliniks();
} catch (ClassNotFoundException ex) {
Logger.getLogger(editUserPage.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(editUserPage.class.getName()).log(Level.SEVERE, null, ex);
}
addUserForm = new Form("form");
groupDropDownChoice = new DropDownChoice("type", new Model(""), groupTypes,
new IChoiceRenderer() {
public Object getDisplayValue(Object object) {
return ((Group) object).getName();
}
public String getIdValue(Object object, int index) {
return Integer.toString(index);
}
});
groupDropDownChoice.setModelObject(user.getGroupId());
假设在db中有一个方法返回给定id的组,这应该可以:
groupDropDownChoice = new DropDownChoice("type", new Model(db.getGroupById(user.getGroupId())), groupTypes, ...
代码段中的最后一行(调用setModelObject的地方)是多余的,因为可以在组件的构造函数中设置模型对象 这不是直接的答案,但可能是您这样做的原因-您试图将模型对象设置为组id,而您从组对象(不是整数)构建了DropDownChoice。因此,如果发布的代码是您的实际代码,并且您没有被wicket 1.3x或更低版本所困扰,我建议您开始使用通用型号(wicket 1.4x之后)。少施法,类型安全,所以你所做的不会发生