(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>