1,效果图
实现管理员角色更新功能.思路adminList.jsp是管理员列表,在此页面点击修改,就触发ToUpdateAdmin.action?id=1001,ToUpdateAdmin.action调用dao,dao负责加载相应的Admin的信息,其中Admin的角色对应的是多个Role.有些Role是选中的,有些是没有选中.使用struts2的<s:checkboxlist>标签实现Role的显示.
2,实现
public class ToUpdateAdminAction {
// 输入属性
private Integer id;
// 输出属性
private Admin admin;
private List<Role> roleList=new ArrayList<Role>();
.....
}
这里的roleList需要查询出所有的Role,也就是"select * from role",就是说所有的角色
public class Admin {
private Integer id;
private String adminCode;
private String password;
private String name;
private String telephone;
private String email;
private Date enrollDate;
private List<String> roleIds;
private String roleNames;
......
}
public class Role{
private Integer id;
private String name;
private String[] privilegeIds;
private String privilegeNames;
.........
}
这里的roleIds就代表Admin已经选择的Role,就是说打钩的角色
3,显示
在updateAdmin.jsp页面使用s:checkboxlist
<s:checkboxlist name="admin.roleIds" list="roleList" listKey="id"
listValue="name"></s:checkboxlist>
admin.roleIds就是打钩的Role,roleList代表所有的Role,listKey是Role的id,listValue是Role的name
4,修改UpdateAdmin.action
用户在updateAdmin.jsp多选角色---->保存更改的时候触发UpdateAdmin.action---->UpdateAdmin.action获取用户的选择角色--->UpdateAdmin.action调用dao---->dao插入修改数据库"update admin_role set role_id=? where admin_id=?" ----->adminList.jsp