亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

權限控制

系統 1801 0
很多時候不同的人擁有不同的權限,不同的人擁有不同的菜單。
那怎么樣做一個可以靈活變動的菜單呢。
大致思路:
建2張數據表:Module(保存著所有的菜單)和User(里面有一個“權限”字段保存著自己需要的菜單);
先獲得所有菜單和用戶菜單,所有的主菜單和子菜單
代碼片段如下:
    
else if("viewUserPermission".equals(action)){
			System.out.println("--------------------viewUserPermission-------------------");
			String id=request.getParameter("id");
			User instance=(User)this.getBaseService().get("User",id);
//			初始化菜單,根據MenuLevel=0代表根目錄從0開始
			List list = this.getModuleService().getModuleTree(Integer.parseInt(instance.getMenuLevel()));//getModuleTree里的參數一般是0
			Iterator menu = list.iterator();
			Vector parentV = new Vector();
			Vector childV = new Vector();
			Module module;
			String allMenu="";
			while (menu.hasNext()) {
				module = (Module) menu.next();
				if (module.getParentId().intValue() == 0) {//0表示父菜單
					parentV.add(module);
				} else {
					childV.add(module);
				}
				allMenu+="["+module.getId()+"]";
			}
			request.setAttribute("parentVector", parentV);//所以的父菜單Vector 
			request.setAttribute("childVector", childV);//所以的子菜單Vector 
			request.setAttribute("allMenu", allMenu);//所有菜單(String型)形如:[1][2][3][4][5]...
			request.setAttribute("id", instance.getId());//當前用戶id
			request.setAttribute("userPermission", instance.getPermission());//當前用戶菜單(String型)形如:[2][4][5]...
			return mapping.findForward("viewUserPermission");
}

  

顯示部分jsp:
    
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>修改權限</title>
	<link href="css/style.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" type="text/javascript">
<!--
function selectKind(target){
	var obj = target;
	var container = document.getElementById("sub_" + obj.name);
	for(var i=0;i<container.getElementsByTagName("input").length;i++){
		container.getElementsByTagName("input")[i].checked = obj.checked;;
	}
}
function getCheckedBox(){
	if(confirm("警告:此操作可能會影響到輸出。\n如果您確定要修改,請先聯系管理員!")){
		var checkNum=document.getElementsByTagName("input").length;
		var values="";
		for(var i=0;i<checkNum;i++){
		 if(document.getElementsByTagName("input")[i].checked){
		 	values+="["+document.getElementsByTagName("input")[i].value+"]";
		 }
		}
		window.location.href="user.portal?action=viewUserPermissionSubmit"+"&permissions="+values+"&id="+${requestScope.id};
	}
}
-->
</script>
</head>
<body>
	<c:forEach var='parent' items='${requestScope.parentVector}' varStatus='i'>
		<c:if test="${fn:indexOf(requestScope.allMenu,parent.id)!=-1}">
			<table border="0" width="400">
				<tr>
					<td>
						<div align="left" >
							<c:choose>
								<c:when test="${fn:indexOf(requestScope.userPermission,parent.id)!=-1}">
									<input type="checkbox" value="${ parent.id }" name='${ i.index }' onclick="selectKind(this)" checked>${ parent.moduleName }
								</c:when>
								<c:otherwise>
									<input type="checkbox" value="${ parent.id }" name='${ i.index }' onclick="selectKind(this)" >${ parent.moduleName }
								</c:otherwise>
							</c:choose>
						</div>
					</td>
				</tr>
			</table>
		</c:if>
		<div id='sub_${i.index}' style="padding-left:20px">
			<table border="0" width="300">
				<c:forEach var='child' items='${requestScope.childVector}' varStatus='j'>
					<c:if test="${fn:indexOf(requestScope.allMenu,parent.id)!=-1&&child.parentId==parent.id}">
						<tr>
							<td>
								<c:choose>
									<c:when test="${fn:indexOf(requestScope.userPermission,child.id)!=-1}">
										<input type="checkbox" value="${child.id }" name='${ j.index }' checked>${child.moduleName}
									</c:when>
									<c:otherwise>
										<input type="checkbox" value="${child.id }" name='${ j.index }' >${child.moduleName}
									</c:otherwise>
								</c:choose>
							</td>
						</tr>
					</c:if>
				</c:forEach>
			</table>
		</div>
	</c:forEach>
	<input title="修改權限" class="button" onclick="getCheckedBox();" type="button" value="提 交">
	<input title="返回" class="button" onclick="window.location.href='user.portal?action=list';" type="button" value="返 回">
</body>
</html>

  

注意window.location.href="user.portal?action=viewUserPermissionSubmit"+"&permissions="+values+"&id="+${requestScope.id};
這里values就是修改后的菜單id,形如:[2][3][5]...把它傳到后臺修改User表的權限字段并刷新頁面就可以顯示修改后的菜單了。

權限控制

權限控制


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 青青久在线视频免费视频 | 91精品推荐 | 久久机热这里只有精品无需 | 四虎在线观看免费视频 | 国产成人不卡亚洲精品91 | 日日夜操| 成人免费黄网站 | 久草视频精品在线 | 国产高清在线a视频大全凹凸 | 精品国产不卡一区二区三区 | 免费99热在线观看 | 狠狠狠狠狠狠狠 | 国产性大片黄在线观看在线放 | 国产亚洲精品自在久久不卡 | 天天操狠狠操夜夜操 | 久综合网 | 亚洲a网| 国产在线91观看免费观看 | 可以直接看的毛片 | 国产亚洲欧美一区二区三区 | 亚洲精品色一区色二区色三区 | 精品国产免费一区二区 | 综合色在线 | 91精品国产免费自在线观看 | 亚洲国产天堂久久综合 | 久草在线国产视频 | 四虎+网站+影院+网站 | 毛片毛片免费看 | 亚洲综合国产一区二区三区 | 中文字幕欧美日韩 | 国产成人亚洲精品大帝 | 91拍拍在线观看 | 天天狠狠弄夜夜狠狠躁·太爽了 | 精品视频网 | 一级理论片 | 99久久国产综合精品麻豆 | 中文字幕日韩高清 | 97精品国产 | 国内精品伊人久久大香线焦 | 免费日本黄色网址 | 日本黄色网址视频 |