我在struts2中创建了一个表格&用于编辑用户记录,用户可以有一个或多个角色,我有一个表单是多选框用于选择给定用户的角色。选择框的内容是从数据库中读取的,我希望选择框在加载表单时预先选择用户当前的选项,使用在线找到的示例我有以下几点。Struts2多选框预选当前选项
在我的动作类
public List<Role> getRoles()
{
return roles;
}
public void setRoles(List<Role> roles)
{
this.roles = roles;
}
public List<Role> getAvailableRoles()
{
return availableRoles;
}
在我的JSP
<s:select list="availableRoles" listKey="id" listValue="name" name="roles" label="Roles" multiple="true" />
的多选框创建精细然而,没有项目被选中开始和我有点困惑,因为每一个例子我已经找到了这一点。
我曾尝试改变选择框,只是这样的:
<s:select list="availableRoles" name="roles" label="Roles" multiple="true" />
这样就成功地预选择的选项然而然后在下拉填充了无论是从对toString()方法返回我的角色类不是特定的getId()和getName()方法,这是我想要的。任何想法,我错了?
这并不能解决我的问题,因为我希望listKey和listValue不同。 – 3urdoch 2010-11-11 16:07:25
我的答案允许您为listkey和listvalue使用不同的值。但是getRoles()和setRoles()需要与你的listkey类型相同。 – Tarski 2010-11-12 11:02:09