左边树形菜单的生成,不是使用tree控件 如何定义一个递归使子节点添加到父节点中,加载角色的时候会把所有和它相关的权限都加载出来,数据库设计如下: 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哦,不好意思,图片出错了,如下:http://p6.images22.51img1.com/6000/typhoon365/6e5a28db2fdbf57f84565a8dddb40543.jpg 我是想定义一个方法,使得 二级菜单.right_parent_code = 一级菜单.right_code 的所有二级菜单添加到一级菜单中,java的方法,最好是使用递归。 <%@ page language="java" pageEncoding="UTF-8"%><%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%><%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%><%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%><%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><link rel="stylesheet" type="text/css" href="/Czhd/theme/2/style.css"><link rel="stylesheet" type="text/css" href="/Czhd/theme/2/menu.css"><html:html lang="true"><head> <html:base /> <title>菜单页</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is menu page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <c:set var="c_mmenu" value=""></c:set> <c:set var="c_smenu" value=""></c:set> <c:set var="i" value="0"></c:set> <c:set var="k" value="0"></c:set></head><body class="panel"><style>A.applink:hover {border: 2px dotted #DCE6F4;padding:2px;background-color:#ffff00;color:green;text-decoration:none}A.applink {border: 2px dotted #DCE6F4;padding:2px;color:#2F5BFF;background:transparent;text-decoration:none}A.info {color:#2F5BFF;background:transparent;text-decoration:none}A.info:hover {color:green;background:transparent;text-decoration:underline}</style> <p align="center"> --主菜单-- </p> <div id="body"> <!-- OA树开始--> <a id="expand_link" href="javascript:menu_expand();"><u><span id="expand_text">展开</span> </u> </a> <ul id="menu"> <c:forEach items="${menus}" var="mmenu" varStatus="s"> <c:if test="${mmenu.menuGroupName != c_mmenu}" var="condition"> <c:set var="c_mmenu" value="${mmenu.menuGroupName}" /> <c:set var="i" value="${i+1}"></c:set> <!-- 写主菜单标签: ${c_mmenu} --> <li class="L1"> <a href="javascript:c(m0${i});" id="m0${i}"><span><img src="/Czhd/images/menu/em.gif" align="Middle"/> ${c_mmenu}</span> </a> </li> <ul id="m0${i}d" style="display:none;" class="U1"> <!-- ***写子菜单标签*** ${mmenu.menuName} *** --> <c:forEach items="${menus}" var="smenu"> <c:if test="${c_mmenu == smenu.menuGroupName}"> <c:set var="k" value="${k+1}"></c:set> <li class="L22"> <a href="javascript:a('${smenu.url}','${i}${k}');" id="f${i}${k}"><span><img src="/Czhd/images/menu/url.gif" align="absMiddle" /> ${smenu.menuName}</span></a> </li> </c:if> </c:forEach> </ul> </c:if> </c:forEach> </ul> </div> <div id="bottom"></div> <script language="JavaScript">var cur_id="";var flag=0,sflag=0;//-------- 菜单点击事件 -------function c(srcelement){ var targetid,srcelement,targetelement; var strbuf; //-------- 如果点击了展开或收缩按钮--------- targetid=srcelement.id+"d"; targetelement=document.getElementById(targetid); if (targetelement.style.display=="none") { srcelement.className="active"; targetelement.style.display=''; menu_flag=0; expand_text.innerHTML="收缩"; } else { srcelement.className=""; targetelement.style.display="none"; menu_flag=1; expand_text.innerHTML="展开"; var links=document.getElementsByTagName("A"); for (i=0; i<links.length; i++) { srcelement=links[i]; if(srcelement.parentNode.className.toUpperCase()=="L1" && srcelement.className=="active" && srcelement.id.substr(0,1)=="m") { menu_flag=0; expand_text.innerHTML="收缩"; break; } } }}function set_current(id){ cur_link=document.getElementById("f"+cur_id) if(cur_link) cur_link.className=""; cur_link=document.getElementById("f"+id); if(cur_link) cur_link.className="active"; cur_id=id;}//-------- 打开网址 -------function a(URL,id){ set_current(id); if(URL.substr(0,7)!="http://" && URL.substr(0,6)!="ftp://") URL = "/Czhd"+URL; parent.working_window.location=URL;}function b(URL,id){ set_current(id); URL = "/app/"+URL; parent.openURL(URL,0);}function d(URL,id){ set_current(id); URL = "/fis/"+URL; parent.openURL(URL,0);}//-------- 菜单全部展开/收缩 -------var menu_flag=1;function menu_expand(){ if(menu_flag==1) expand_text.innerHTML="收缩"; else expand_text.innerHTML="展开"; menu_flag=1-menu_flag; var links=document.getElementsByTagName("A"); for (i=0; i<links.length; i++) { srcelement=links[i]; if(srcelement.parentNode.className.toUpperCase()=="L1" || srcelement.parentNode.className.toUpperCase()=="L21") { targetelement=document.getElementById(srcelement.id+"d"); if(menu_flag==0) { targetelement.style.display=''; srcelement.className="active"; } else { targetelement.style.display="none"; srcelement.className=""; } } }}</script></body></html:html> jsp页面的超链接路径问题,求大侠们解答O(∩_∩)O~ 关于iframs用法传值问题。在线等 在html可以直接在ie页面通过超链接打开word文档,为什么在jsp里面不行呢? 一个关于<url-pattern>的问题 我有一条JS脚本,不知道是什么意思,希望大家帮帮忙 jsp怎样提取本页文件名 新手求助购物车怎么写(在线等) tomcat的几个问题,各位老大帮帮忙 一个查询语句的问题? 急!做过百度文库效果的各位哥哥姐姐进来看看 求一字符串替换问题 jsp对象的几个问题
http://p6.images22.51img1.com/6000/typhoon365/6e5a28db2fdbf57f84565a8dddb40543.jpg
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<link rel="stylesheet" type="text/css" href="/Czhd/theme/2/style.css">
<link rel="stylesheet" type="text/css" href="/Czhd/theme/2/menu.css"><html:html lang="true">
<head>
<html:base />
<title>菜单页</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is menu page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> <c:set var="c_mmenu" value=""></c:set>
<c:set var="c_smenu" value=""></c:set>
<c:set var="i" value="0"></c:set>
<c:set var="k" value="0"></c:set>
</head>
<body class="panel">
<style>
A.applink:hover {border: 2px dotted #DCE6F4;padding:2px;background-color:#ffff00;color:green;text-decoration:none}
A.applink {border: 2px dotted #DCE6F4;padding:2px;color:#2F5BFF;background:transparent;text-decoration:none}
A.info {color:#2F5BFF;background:transparent;text-decoration:none}
A.info:hover {color:green;background:transparent;text-decoration:underline}
</style>
<p align="center">
--主菜单--
</p>
<div id="body">
<!-- OA树开始-->
<a id="expand_link" href="javascript:menu_expand();"><u><span
id="expand_text">展开</span> </u> </a>
<ul id="menu">
<c:forEach items="${menus}" var="mmenu" varStatus="s">
<c:if test="${mmenu.menuGroupName != c_mmenu}" var="condition">
<c:set var="c_mmenu" value="${mmenu.menuGroupName}" />
<c:set var="i" value="${i+1}"></c:set>
<!-- 写主菜单标签: ${c_mmenu} -->
<li class="L1">
<a href="javascript:c(m0${i});" id="m0${i}"><span><img
src="/Czhd/images/menu/em.gif" align="Middle"/>
${c_mmenu}</span> </a>
</li>
<ul id="m0${i}d" style="display:none;" class="U1">
<!-- ***写子菜单标签*** ${mmenu.menuName} *** -->
<c:forEach items="${menus}" var="smenu">
<c:if test="${c_mmenu == smenu.menuGroupName}">
<c:set var="k" value="${k+1}"></c:set>
<li class="L22">
<a href="javascript:a('${smenu.url}','${i}${k}');"
id="f${i}${k}"><span><img
src="/Czhd/images/menu/url.gif" align="absMiddle" />
${smenu.menuName}</span></a>
</li>
</c:if>
</c:forEach>
</ul>
</c:if>
</c:forEach>
</ul>
</div>
<div id="bottom"></div>
<script language="JavaScript">
var cur_id="";
var flag=0,sflag=0;//-------- 菜单点击事件 -------
function c(srcelement)
{
var targetid,srcelement,targetelement;
var strbuf; //-------- 如果点击了展开或收缩按钮---------
targetid=srcelement.id+"d";
targetelement=document.getElementById(targetid); if (targetelement.style.display=="none")
{
srcelement.className="active";
targetelement.style.display=''; menu_flag=0;
expand_text.innerHTML="收缩";
}
else
{
srcelement.className="";
targetelement.style.display="none"; menu_flag=1;
expand_text.innerHTML="展开";
var links=document.getElementsByTagName("A");
for (i=0; i<links.length; i++)
{
srcelement=links[i];
if(srcelement.parentNode.className.toUpperCase()=="L1" && srcelement.className=="active" && srcelement.id.substr(0,1)=="m")
{
menu_flag=0;
expand_text.innerHTML="收缩";
break;
}
}
}
}
function set_current(id)
{
cur_link=document.getElementById("f"+cur_id)
if(cur_link)
cur_link.className="";
cur_link=document.getElementById("f"+id);
if(cur_link)
cur_link.className="active";
cur_id=id;
}
//-------- 打开网址 -------
function a(URL,id)
{
set_current(id);
if(URL.substr(0,7)!="http://" && URL.substr(0,6)!="ftp://")
URL = "/Czhd"+URL;
parent.working_window.location=URL;
}
function b(URL,id)
{
set_current(id);
URL = "/app/"+URL;
parent.openURL(URL,0);
}
function d(URL,id)
{
set_current(id);
URL = "/fis/"+URL;
parent.openURL(URL,0);
}
//-------- 菜单全部展开/收缩 -------
var menu_flag=1;
function menu_expand()
{
if(menu_flag==1)
expand_text.innerHTML="收缩";
else
expand_text.innerHTML="展开"; menu_flag=1-menu_flag; var links=document.getElementsByTagName("A");
for (i=0; i<links.length; i++)
{
srcelement=links[i];
if(srcelement.parentNode.className.toUpperCase()=="L1" || srcelement.parentNode.className.toUpperCase()=="L21")
{
targetelement=document.getElementById(srcelement.id+"d");
if(menu_flag==0)
{
targetelement.style.display='';
srcelement.className="active";
}
else
{
targetelement.style.display="none";
srcelement.className="";
}
}
}
}</script>
</body>
</html:html>