博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring 3.2 mvc 点击修改按钮时<form:checkbox/>使原来选中的前面画勾
阅读量:6898 次
发布时间:2019-06-27

本文共 1952 字,大约阅读时间需要 6 分钟。

hot3.png

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

你可能感兴趣的文章
Android 随笔——Android必须知道的注解Annotations
查看>>
关于iOS11中estimatedRowHeight属性
查看>>
Zookeeper源码分析-数据模型
查看>>
折腾Java设计模式之解释器模式
查看>>
设计模式命令模式(行为型)
查看>>
RN开发快速切换底部导航时react-native-swiper轮播图组件白屏
查看>>
sublime px -> rem sass
查看>>
瀑布流照片墙布局
查看>>
日常工具--渐变+找图+压缩图片
查看>>
《Redis开发与运维》慢查询分析 读书笔记
查看>>
学习仿饿了么遇到商品详情页的添加购物车按钮没有动画,$emit派发事件
查看>>
一些开发chrome插件用到的API总结
查看>>
Java集合(二)-LinkedList源码解析
查看>>
如何配置wamp后运行magento2
查看>>
python学习干货教程(15):迭代器和生成器
查看>>
Flutter之布局类Widget
查看>>
three.js性能优化
查看>>
Choerodon如何进行日志收集与告警
查看>>
Vue篇之vue 使用Jade模板写html,stylus写css
查看>>
spring web 项目启动过程分析
查看>>