主页面左右测试菜单配置

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@page import="java.util.*"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ path + "/";
String user_no = session.getAttribute("user_no").toString(); //从session里把a拿出来,并赋值给M
String role_name = session.getAttribute("role_name").toString(); //从session里把a拿出来,并赋值给M
String user_name = session.getAttribute("user_name").toString(); //从session里把a拿出来,并赋值给M
%>
<meta charset="utf-8">
<link href="<%=basePath%>css/themes/default/easyui.css" rel="stylesheet" type="text/css"/>
<link href="<%=basePath%>css/themes/icon.css" rel="stylesheet" type="text/css"/>
<link href="<%=basePath%>css/themes/color.css" rel="stylesheet" type="text/css"/>
<link href="<%=basePath%>css/themes/demo.css" rel="stylesheet" type="text/css"/>



<script type="text/javascript" src="<%=basePath%>js/jquery.min.js"></script>
<script type="text/javascript" src="<%=basePath%>js/easyloader.js"></script>
<script type="text/javascript" src="<%=basePath%>js/jquery.easyui.min.js"></script>
<script type="text/javascript" src="<%=basePath%>js/jquery.easyui.mobile.js"></script>
<script type="text/javascript" src="<%=basePath%>js/plugins/jquery.parser.js"></script>
<script type="text/javascript" src="<%=basePath%>js/plugins/jquery.pagination.js"></script>
<script type="text/javascript" src="<%=basePath%>js/plugins/jquery.form.js"></script>
<style type="text/css">

</style>

</head>
<body>
<!--logo和左侧导航:start-->
<div class="NewLeft" style="border:1px solid;300px;height:100%; overflow:hidden;display: inline-block;float: left;">
<div style=" clear:both; 100%;"></div>

<div class="LeftMenu" scroll="no" style="height:800px;">

<div class="lfloat" id="LeftFatherMenu" style="25%;">
<ul id="nav" style="200px;">
<c:forEach var="a" varStatus="status" items="${resAllList }">
<c:if test="${status.index == 0}">
<li class="bb" id="tb_${status.index+1 }" onClick="x:hoverli(${status.index+1 });">
<span class="MenuIco0${status.index+1 }"></span>
<p>${a.get("NAME") }</p>
</li>
</c:if>
<c:if test="${status.index != 0}">
<li class="aa" id="tb_${status.index+1 }" onClick="x:hoverli(${status.index+1 });">
<span class="MenuIco0${status.index+1 }"></span>
<p>${a.get("NAME") }</p>
</li>
</c:if>
</c:forEach>
</ul>
</div>

<!--二级导航:start-->
<div class="lfloat" id="LeftMenuList" style="50%;float: left;">
<div id="newinfo">
<div class="ctt list2">
<div class="MenuTit">导航菜单</div>
<div class="MenuTitIndex"><a href="#" onclick="history.go(0)">首页</a></div>
<c:forEach var="a" varStatus="status" items="${resAllList }">
<c:if test="${status.index == 0 }">
<div class="dis" id="tbc_0${status.index+1 }">
<div class="subNavBox">
<c:forEach var="b" varStatus="status_b" items="${a.get('children') }">
<c:if test="${b.get('pid') == a.get('id') }">
<div class="subNav" data-check="true">${b.get("NAME") }</div>
<ul class="navContent " style="200px;">
<c:forEach var="c" varStatus="status_c" items="${b.get('children') }">

<li>
<script type="text/javascript">

var x${c.get('id')} = "${c.get('id')}";
var y${c.get('id')} = "${c.get('url')}";
var z${c.get('id')} = "${b.get('NAME')}";
</script >
<a href="#" onclick="loadUrl(x${c.get('id')},y${c.get('id')},z${c.get('id')});">${c.get('NAME') }</a></li>
</c:forEach>
</ul>
</c:if>
</c:forEach>
</div>
</div>
</c:if>

<c:if test="${status.index != 0 }">
<div class="undis" id="tbc_0${status.index+1 }">
<div class="subNavBox">
<c:forEach var="b" varStatus="status_b" items="${a.get('children') }">
<c:if test="${b.get('pid') == a.get('id') }">
<div class="subNav" data-check="true">${b.get("NAME") }</div>
<ul class="navContent " style="200px;">
<c:forEach var="c" varStatus="status_c" items="${b.get('children') }">
<li>
<script type="text/javascript">

var x${c.get('id')} = "${c.get('id')}";
var y${c.get('id')} = "${c.get('url')}";
z${c.get('id')} = "${b.get('NAME')}";
</script >
<a href="#" onclick="loadUrl(x${c.get('id')},y${c.get('id')},z${c.get('id')});">${c.get('NAME') }</a></li>
</c:forEach>
</ul>
</c:if>
</c:forEach>
</div>
</div>
</c:if>

</c:forEach>
</div>
</div>
</div>
<!--二级导航:end-->
</div>
<!--左侧导航:end-->
</div>
<!--logo和左侧导航:end-->

<!--右侧头部导航:start-->
<%-- <div data-options="region:'north',border:true" class="lgy-header">
<!--点击关闭左侧菜单按钮-->
<a href="#" class="leftMenuIco" id="leftMenuBut"></a>
<!--新增面包屑:start-->
<div class="headerMiddle">
<a href="#" class="Hm_nav1">导航</a>
<!-- <a href="#" class="Hm_nav2">首页</a>-
<!-- <a href="#" class="Hm_nav2">需求新增</a> -->
</div>
<!--新增面包屑:end-->
<!--新版头部右侧:start-->
<div class="lgy-header-right" style="300px;">
<ul class="headerRight" style="200px;">



<li>
<div id="topSelect">
单位:
<select id="company" onchange="changeCompany()">
<c:forEach var="coma" varStatus="abc" items="${companys}">
<option value="${coma.get('company_id')}">${coma.get('company_name')}</option>
</c:forEach>
</select>
</div>
</li>
<li>
<div id="topSelect">
角色:
<select id="role" onchange="changeRole()">
<c:forEach var="rolesa" varStatus="abc" items="${roles}">
<option value="${rolesa.get('role_id')}">${rolesa.get('role_name')}</option>
</c:forEach>
</select>
</div>
</li>
<li>


<div class="userName">

<p id="wdwd">欢迎,<%=name%></p>
<p id="current_data"></p>
</div>
<div class="userImgD" onclick="goback()">
<!--性别男-->
<i class="IcoSexM"></i>
<!--性别女
<i class="IcoSexF"></i>-->
<img class="userImg" src="<%=basePath%>css/images/121.jpg">
</div>
</li>

<li><a style="color: #262b3a;" id="loginout" href="javascript:void(0);">退出</a> </li>

</ul>
</div>
<!--新版头部右侧:end-->

</div> --%>
<!--右侧头部导航:end-->
<div style="border:1px;display:inline-block;position: absolute;float: left;z-index: 9;">

<table>
<tr>
<td align="right">角色: </td>
<td>
<select id="role_name" name="role_name" style="160px;height: 30px;" onchange="changeRole()">
</select>
</td>
<td align="right">欢迎: </td>
<td>
<input id="user_name" name="user_name" value="<%=user_name%>" readonly="readonly" style="border:none;"></input>
</td>
<td align="right"></td>
<td>
<input type="button" onclick="logout()" value="退出"></input>
</td>

</tr>
</table>
</div>
<div class="IndexRight" id="mainPanle" style=" 100%;border:1px solid;display:inline-block;position: absolute;float: left;">

</div>
<script type="text/javascript" language="javascript">
var resSize = '${resSize}';
var resIndex ='0'; var resName ='';var resId ='';
//<!cdata[
function g(o) {return document.getElementById(o);}
function hoverli(n){
for(var i=1;i<=resSize;i++){
g('tb_'+i).className='aa';
g('tbc_0'+i).className='undis';
}
g('tbc_0'+n).className='list2';
g('tb_'+n).className='bb';
}
//如果要做成点击后再转到请将<li>中的onmouseover 改成 onclick;
</script>
<script type="text/javascript">
$(function(){

$(".subNav").click(function(){
if($(this).attr('data-check') == 'true'){
$(this).toggleClass("currentDd").siblings(".subNav").removeClass("currentDd")
$(this).toggleClass("currentDt").siblings(".subNav").removeClass("currentDt")

// 修改数字控制速度, slideUp(500)控制卷起速度
$(this).next(".navContent").slideToggle(500).siblings(".navContent").slideUp(500);
}
})

$('#mainPanle').height($(window).height() - $('.lgy-header').height());
$('#mainPanle').load('<%=basePath %>xyData/user/getMain.do?credit=${credit }&no_auth=${no_auth }');

//给角色下拉框赋值
//根据返回的用户号查询该用户所具有的角色
$.post('<%=basePath%>user/findAllotControlByUserNo.do?user_no='+'<%=user_no%>',
function(data){
$('#role_name').empty();
var obj=data.row;
for(var i=0;i<obj.length;i++){
$('#role_name').append('<option value="'+obj[i].role_name+'">'+obj[i].role_name+'</option>');

}
$("#role_name").val(Array('<%=role_name%>'));
});
})

$('#loginout').bind("click",function(){
$.messager.confirm('退出系统', '您确定退出系统吗?', function(r){
if (r){
window.location.href = '<%=basePath %>xyData/user/userloginOut.do';
}
});
});
$('.navContent li a').click(function(){
$(this).parent().addClass("cur");
$(this).parent().siblings().removeClass("cur");
});
function loadUrl(id, url,name){
//alert('id='+id+'url=='+url+'name=='+name)
$('.Hm_nav1').text(name);
$('.easyui-fluid').remove();
$('#mainPanle').load('<%=basePath %>user/hydJump.do?menuid=' + id + '&url=' + url);
}

function ooooo(){
if(resName==''||resId==''){
return
}
$('#mainPanle').load('<%=basePath %>hydJump.do?menuid=' + resId + '&url=' + resId);
}
function changeCompany(){
//alert("changeCompany"+$("#company").val());
window.location.href="changeCompany.do?company_id="+$("#company").val();

}
function changeRole(){
//alert("changeRole"+$("#role").val());
window.location.href="changeRole.do?role_id="+$("#role").val();

}
//退出登录
function logout(){
$.messager.confirm('退出登录', '您确定退出登录?', function(r){
window.location.href="<%=basePath%>user/login.do";
})
}
//选择不同的角色查看不同的权限
function changeRole(){
var remark=$('#role_name').val();
//alert(remark);
window.location.href="<%=basePath%>user/toUserMainjsp.do?remark="+remark;
}
</script>
</body>
</html>

java 代码  =====

/**
* 查询用户权限
* @param remark
* @return
*/
@RequestMapping("/findMenuList.do")
@ResponseBody
public Map findMenuList(String remark,HttpServletRequest request, ModelMap modmap) {
System.out.println("查询menu权限开始");
Map<String,Object>map=new HashMap<String,Object>();
try {
List<Map<String,Object>>list=loadMenuService.findMenuList(remark);
System.out.println("list===="+list);
modmap.addAttribute("resAllList", list);
modmap.addAttribute("resSize", list.size());
map.put("msg", "查询成功");
map.put("resAllList", list);
} catch (Exception e) {
map.put("msg", "查询失败");
e.printStackTrace();

}
return map;
}

实现类代码

/**
* 查询权限
*/
@Override
public List<Map<String, Object>> findMenuList(String remark) {
System.out.println("findMenuList-remark=="+remark);
List<Map<String, Object>>list =loadMenuDao.findMenuList(remark);
list=getTreeList("id","pid","children",list);
System.out.println("treelist======"+list);
return list;
}
//把带有父子机构的数据变成treelist形式
public static List<Map<String, Object>> getTreeList(String id,String pid,String children,List<Map<String, Object>>list) {
//List<Map<String, Object>>listmap=new ArrayList<Map<String, Object>>();
//给list的每一项加一个子项
for(int i=0;i<list.size();i++) {
list.get(i).put(children, new ArrayList<Map<String, Object>>());
}
List<Map<String, Object>>treelist=new ArrayList<Map<String, Object>>();
for(Map<String, Object> outmap:list) {
for(Map<String, Object> inmap:list) {
String outid=outmap.get(id).toString();
String inpid=inmap.get(pid).toString();
if(outid.equals(inpid)) {
List<Map<String, Object>>maplist=(ArrayList) outmap.get(children);
maplist.add(inmap);
}
}
String prid=outmap.get(pid).toString();
if(StringUtils.isBlank(prid)) {
treelist.add(outmap);
}
}
return treelist;
}

原文地址:https://www.cnblogs.com/xianz666/p/12004755.html