EJB项目:点击查看显示角色拥有的权限树型结构

(1)初步编码

(2)发现"该角色尚未分配权限"bug,修改并测试完成。

	/**
	 * 点击查看显示角色拥有的权限树型结构
	 * @return
	 */
	public String queryPermission(){
		int roleId = 0;
		String roleIdString=request.getParameter("roleId");
		if(roleIdString !=null){
			roleId=Integer.parseInt(roleIdString);
		}
		String[] whereFields={"roleid"};
		String fatherField="fathermenu";
		String[] fields={"menuid"};
		String relationTableName="T_ROLE_MENU";
		String returnTableName="T_MENU";
		String returnWhereField="menuid";
		TreeModel<Menu,Long> tree=commonTreeModelQueryBean.getTreeModelByRelation(
				Menu.class, fatherField, fields, relationTableName, 
				returnTableName, returnWhereField, whereFields, roleId);
		String strSbTreeHTML;
		if (tree == null) {
			strSbTreeHTML = "该角色尚未分配权限!";
		} else {
			getSbTreeHTML(tree);
			strSbTreeHTML = sbTreeHTML.toString();
		}
		request.setAttribute("strSbTreeHTML", strSbTreeHTML);
		return "queryPermission";
	}
	
	private void getSbTreeHTML(TreeModel<Menu,Long> tree){
		Set<TreeModel<Menu,Long>> sonTree=tree.getSetTreeModels();
		if(sonTree!=null){
			sbTreeHTML.append("<div>");
			sbTreeHTML.append("\n");
			sbTreeHTML.append("<img src=\"../CollegePlatform_Role_Query_War/images/white.gif\">");
			sbTreeHTML.append("\n");
			sbTreeHTML.append("<img alt=\"展开\" style=\"cursor:hand;\" onClick=\"display(" + tree.getT().getMenuId() + ");\" id=\"img" + tree.getT().getMenuId() + "\" src=\"../CollegePlatform_Role_Query_War/images/plus.gif\">");
			sbTreeHTML.append("\n");
			sbTreeHTML.append("<img id=\"im" + tree.getT().getMenuId() + "\" src=\"../CollegePlatform_Role_Query_War/images/closedfold.gif\">");
			sbTreeHTML.append("\n");
			sbTreeHTML.append("菜单树");
			sbTreeHTML.append("\n");
			sbTreeHTML.append("<div style=\"display:none;\" id=\"div" + tree.getT().getMenuId() + "\">");
			sbTreeHTML.append("\n");
			
			getSonTree(tree,tree.getLevel()+1);
			sbTreeHTML.append("</div>");
			sbTreeHTML.append("\n");
		}
	}

	private void getSonTree(TreeModel<Menu, Long> tree, long level) {
		
		for(TreeModel<Menu, Long> treeModelSon:tree.getSetTreeModels()){
			sbTreeHTML.append("<div>");
			sbTreeHTML.append("\n");
			for (int i=0; i<level+1; i++) {
				sbTreeHTML.append("<img src=\"../CollegePlatform_Role_Query_War/images/white.gif\">");
				sbTreeHTML.append("\n");
			}
			if (treeModelSon.getSetTreeModels()!=null) {
				sbTreeHTML.append("<img alt=\"展开\" style=\"cursor:hand;\" onClick=\"display(" + treeModelSon.getT().getMenuId() + ");\" id=\"img" + treeModelSon.getT().getMenuId() + "\" src=\"../CollegePlatform_Role_Query_War/images/plus.gif\">");
				sbTreeHTML.append("\n");
				sbTreeHTML.append("<img id=\"im" + treeModelSon.getT().getMenuId() + "\" src=\"../CollegePlatform_Role_Query_War/images/closedfold.gif\">");
				sbTreeHTML.append("\n");
				sbTreeHTML.append(treeModelSon.getT().getMenuName());
				sbTreeHTML.append("\n");
				sbTreeHTML.append("<div style=\"display:none;\" id=\"div" + treeModelSon.getT().getMenuId() + "\">");
				sbTreeHTML.append("\n");
				
				getSonTree(treeModelSon,treeModelSon.getLevel()+1);
				sbTreeHTML.append("</div>");
				sbTreeHTML.append("\n");
			}else {
				sbTreeHTML.append("<img src=\"../CollegePlatform_Role_Query_War/images/minus.gif\">");
				sbTreeHTML.append("\n");
				sbTreeHTML.append("<img src=\"../CollegePlatform_Role_Query_War/images/openfold.gif\">");
				sbTreeHTML.append("\n");
				sbTreeHTML.append(treeModelSon.getT().getMenuName());
				sbTreeHTML.append("\n");
				sbTreeHTML.append("<div style=\"display:none;\" id=\"div" + treeModelSon.getT().getMenuId() + "\">");
				sbTreeHTML.append("\n");
				sbTreeHTML.append("</div>");
				sbTreeHTML.append("\n");
			}
			sbTreeHTML.append("</div>");
			sbTreeHTML.append("\n");
		}
	}


页面:

showRole.jsp

	<table class="table" cellspacing="1" align="center">
		<tr class="th">
			<th>角色名称</th>
			<th>角色描述</th>
			<th>查看权限</th>
		</tr>
			<% 
			  List<Role> roleList = pageModel.getList();
			  for (Iterator<Role> iter=roleList.iterator(); iter.hasNext();) {
					Role role = iter.next();
			%>	
		<tr>
			<td hidden="true">
				<input type="text" hidden="true" id="roleId" value="<%=role.getRoleId()%>"/>
			</td>
			<td class="rd8">
				<%= role.getRoleName() %>
			</td>
			<td class="rd8">
				<%= role.getRoleDesc() %>
			</td>   
			<td class="rd8">
				<a href="#" οnclick="openWin('queryRole!queryPermission?roleId=<%=role.getRoleId()%>','角色权限',700,500,1)">查看</a>
				<!-- <input type="button" οnclick="openWin('queryRole!queryPermission?roleId=<%=role.getRoleId()%>','角色权限',700,500,1)" value="查看"> -->
			</td>
		</tr>
		 <% 
			} 
		 %> 
	</table>

showTree.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
	String strSbTreeHTML = (String) request
			.getAttribute("strSbTreeHTML");
%>

<html>
<head>
<base href="<%=basePath%>" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查询角色</title>
<link href="css/basic.css" rel="stylesheet" type="text/css">
	<script type="text/javascript">  
		function display(id) {
			eval("var div=div"+id);
			eval("var img=\"img"+id+"\"");
			eval("var im=\"im"+id+"\"");
			div.style.display=div.style.display=="block"?"none":"block";
			img.src=div.style.display=="block" ? "<%=basePath%>Images/minus.gif":"<%=basePath%>Images/plus.gif";
			im.src=div.style.display=="block" ? "<%=basePath%>Images/openfold.gif":"<%=basePath%>Images/closedfold.gif";
			img.alt = div.style.display == "block" ? "关闭" : "展开"; 
		}
	</script>
</head>
<body class="basebody">
	<div class="divframe">
		<form>
			<div id="tree">
				<%=strSbTreeHTML%>
			</div>
		</form>
	</div>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
PermissionBase权限管理系统0.1.2源码 1.概述Permission Base(授权基础,以下简称PB)是一个基于.NET 2.0平台开发的开源项目,使用的协议为:Apache License Version 2.0。 PB是一套适用于一般中小B/S企业应用系统的“权限控制基础结构”。PB的定位并不是一个通用的组件或者框架,而是一个“半成品的程序”。它包含了一个适用于一般企业应用系统的框架,以及与用户权限管理相关的结构和模块,因此PB可以作为中小企业应用系统或一般网站系统的实现参考或者项目雏形。 PB包括以下模块:职员登录、模块导航、系统代码管理、模块管理、角色管理、部门管理、职员管理、修改密码、前台用户信息管理。这些功能和模块是大多数企业应用系统中所必须的。 2.适用范围序号 描述 1 PB目前的版本被设计为仅能在单台服务器上运行。 2 PB并不适用于分布式的情况,即所有的横向分层(表现层,服务层,业务逻辑层,数据访问层,……)都仅设计为逻辑的分层,而不是物理的分层,各层只能部署在一台服务器上运行。 3 PB也并不是集群系统,即不能在集群环境下部署,这主要是因为目前使用的缓存策略导致的。 3.使用的技术、工具和产品开发平台 .NET 2.0.50727 IDE Visual Studio 2005 Pro/Team UML设计 Sybase PowerDesigner 12 项目文件夹结构目录 说明 doc 项目文档 lib 项目引用到的第三方程序集(dll) model / oom UML图 model / pdm 数据库设计文档(E – R图) model / sql 数据库创建和删除的脚本 resource 项目使用到的第三方UI控件的完整源码包 描述 1 “职员”和“用户”的登录密码在存入数据库前都进行了SHA1加密。 2 登录时的验证码在放入cookie前进行了DES加密。 3 由于所有的页面跳转全部使用的是相对路径,所以不能对单独的某几个包含密码信息的页面使用SSL。可以对整个Admin目录使用SSL。但如果觉得这样做带来的性能损失太大,则必须重构相关页面跳转的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值