角色管理原生态代码、逻辑分享

1、赋予角色是多对多,多对多的关系表进行增删查改,需要中间表来连接两张表关键字ID。通过中间表来进行增加查改。

添加权限:

 1 @Autowired
 2     private RoleService roleService;
 3     // 添加角色
 4     @RequestMapping(value="/addrole.action",method=RequestMethod.POST)
 5     @ResponseBody
 6     public String addRole(HttpServletRequest request,HttpSession session) {
 7         //实现逻辑:1、从界面获取角色名字,把获取到的角色名字放入role表自动生成角色ID,再把这个ID存入中间表。
 8         //       2、技术难点:因为复选框是多选,如何把多个选中的权限存入中间表而且ID是同一个人的。
 9         // 解决问题:从界面获取复选框的值,如果是表单提交可以采用string[]数组去接收复选框的值,最好是通过写好的JS代码传值到后台,
10         //然后循环便利这个复选框数组,在循环的过程中把roleid和权限ID添加进数组就行了,这就实现了权限的添加。
11         String name=request.getParameter("name");
12         String sex=request.getParameter("sex");
13         //调用service层业务方法加入数据生成ID
14         Role r=new Role();
15         r.setName(name);
16         r.setStatus(sex);
17         Timestamp ts = new Timestamp(System.currentTimeMillis());   
18         Date date= new Date();//创建一个时间对象,获取到当前的时间
19         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置时间显示格式
20         String str = sdf.format(date);//将当前时间格式化为需要的类型
21                 try {   
22                     ts = Timestamp.valueOf(str);   
23                 } catch (Exception e) {   
24                     e.printStackTrace();   
25                 }
26          roleService.addrole(r);
27         //添加进角色以后通过查询获取角色ID
28         List<Role>listrole=roleService.getOne(r);
29         Integer id = null;
30         for (Role role : listrole) {
31             id=role.getRoleid();
32         }
33         int  y=0;
34         String p=request.getParameter("position");
35         String[] temp1=p.split(",");
36         //Jsp页面上获取到了muenid(数组)For循环。生成一个中间表对象。存如角色id和muenid。
37         for (int i = 0; temp1 != null && i < temp1.length; i++) {
38             Integer resultStr = Integer.valueOf(temp1[i]);
39             System.out.println("resu:"+resultStr);
40             Connection con=new Connection();
41             System.out.println("id2:"+id);
42             con.setRoleid(id);
43             con.setMuenid(resultStr);
44             roleService.addConnection(con);
45             y++;
46         }
47         if(y>0){
48             return "Y";
49         }else{
50             return "N";
51         }
52     }

 

posted on 2017-08-03 09:00  天空很蓝啊  阅读(387)  评论(0编辑  收藏  举报

导航