修改用户角色
TestRoleService
@Test
public void test06(){
//老王的角色列表
String userId="002108e2-9a10-4510-9683-8d8fd1d374ef";
String[] roleIds = {"4028a1cd4ee2d9d6014ee2df4c6a0010"};
iRoleService.updateUserRole(userId,roleIds);
}
IRoleService,RoleServiceImpl
void updateUserRole(String userId, String[] roleIds);
@Override
public void updateUserRole(String userId, String[] roleIds) {
//删除
iRoleDao.deleteUserRoleByUserId(userId);//删除 用户角色中间表
for(String roleId:roleIds){
iRoleDao.saveUserRole(userId,roleId);
}
}
IRoleDao,IRoleDao.xml
void deleteUserRoleByUserId(String userId);
void saveUserRole(String userId, String roleId);
<delete id="deleteUserRoleByUserId" parameterType="string">
delete from pe_role_user where user_id=#{userId}
</delete>
<insert id="saveUserRole" >
insert into pe_role_user values(#{arg0},#{arg1})
</insert>
用户角色的保存页面
user-role.jsp
<script>
function formSubmit() {
document.icform.action="${path}/system/user/updateUserRole.do";
document.icform.submit();
}
</script>
参数要正确,必须有一个userId和多个roleId(后者放在roleIds数组中)
<form name="icform" method="post" >
<input type="hidden" name="userId" value="${user.userId}"/>
<div class="textbox" id="centerTextbox">
<div style="text-align:left">
<c:forEach items="${roleList}" var="role" varStatus="vs">
<span style="padding:3px;margin-right:30px;width: 160px;display: inline-block">
<input type="checkbox" name="roleIds" value="${role.roleId}"
<%-- 根据role对象中的checked属性进行判断,如果为true,则打勾,否不打勾--%>
<c:if test="${role.checked}">
checked
</c:if>
/>
${role.name}
</span>
</c:forEach>
</div>
</div>
</form>
UserController
//${path}/system/user/updateUserRole.do
//userId
//String[] roleIds
@RequestMapping(path = "/updateUserRole", method = {RequestMethod.GET, RequestMethod.POST})
public String updateUserRole(String userId,String[] roleIds){//接收用户的userId与角色的roleIds
//String userId="002108e2-9a10-4510-9683-8d8fd1d374ef";
//String[] roleIds = {"4028a1cd4ee2d9d6014ee2df4c6a0010"};
l.info("updateUserRole userId = "+userId);
l.info("updateUserRole roleIds = "+ Arrays.toString(roleIds));
//用户的角色修改
iRoleService.updateUserRole(userId,roleIds);
//打开列表页面
return "redirect:/system/user/toList.do";
}