spring 3.2 mvc 点击修改按钮时<form:checkbox/>使原来选中的前面画勾

jsp页面的代码如下所示:

<td class="label" valign="top">
          <fmt:message key="authority.cname.title"/>:
         </td>
    <c:forEach items="${authoritys}" var="current" varStatus="i">
        <td>
                      <form:checkbox path="userName" value="${current.id}" checked="checked"/>
      ${current.CName}
     </td>
    </c:forEach>
    <c:forEach items="${authorities}" var="cur" varStatus="j">
        <td>
                      <form:checkbox path="userName" value="${cur.id}"/>
      ${cur.CName}
     </td>
    </c:forEach>

红色的项表示用户已有的权限,利用循环和checked="checked"在每行加上使这些权限项的前面画勾,绿色的代码表示用户没有的权限,利用循环将这些项显示出来。

control层的代码如下所示:

/*
 * edit an existing Authority entity
 */
@RequestMapping("/updateAuthority")
public ModelAndView updateAuthority(@RequestParam Integer idKey)
{
   ModelAndView mav=new ModelAndView();
   User user=systemManageService.findUserById(idKey);
   Set<Authority> sets=systemManageService.findAllAuthorities();
   mav.addObject("user", user);
   mav.addObject("users", shareService.getUsersMap());
   mav.addObject("authoritys", user.getAuthorities());
   mav.addObject("authorities",systemManageService.findOtherAuthorities(idKey));
   mav.addObject("size", sets.size());
   mav.setViewName("_operate/updateAuthority.jsp");
   return mav;
}

service层如下所示:

/*
  * 查找所有的权限信息
  */
 @Transactional
 public Set<Authority> findAllAuthorities()
 {
  return authorityDAO.findAllAuthoritys();
 }

/*
  * 查找用户没有的权限
  */
 public List<Authority> findOtherAuthorities(Integer idKey)
 {
  Set<Authority> sets=this.findAllAuthorities();//得到所有的权限数据;
  User user=userDAO.findUserByPrimaryKey(idKey);
  List<Authority> list=new ArrayList<Authority>();//创建一个空的权限的数组;
  list.addAll(sets);
  Set<Authority> userauth=user.getAuthorities();//得到用户现有的权限;
  List<Authority> list2=new ArrayList<Authority>();//创建一个空的权限的数组;
  list2.addAll(userauth);//将一个set的authority数组转换成一个list型的;
  for(int i=0;i<list2.size();i++)
  {
   Authority auth=list2.get(i);
   int id=auth.getId();
   for(Authority authority:sets)
   {
    if(authority.getId()==id)
        {
     list.remove(authority);
    }
   }
  }
  return list;
 }

页面显示如下图所示:

 

 

 

 

转载于:https://my.oschina.net/u/659230/blog/96574

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值