树型菜单(JAVA)
java 代码
- <%@ page contentType="text/html; charset=GBK" %>
- <%@ page import="java.util.*"%>
- <%!
- public void addMenu(List list, Map map, HttpServletRequest request) throws Exception
- {
- //判断map的url属性是否为空,若为空则认为是最终子菜单
- if (map.get("url") != null && !"".equals(map.get("url")))
- {
- //判断权限号是否被允许
- String power = (String) map.get("power");
- boolean b = true;//hasPerm(request, power);
- //允许访问
- if (b)
- {
- map.put("display", "true"); //若权限号被允许则设置display为true,并添加到list中
- list.add(map);
- //将父菜单的display属性设置为true
- String father = (String) map.get("father");
- if (father != null)
- {
- setParentDisplay(list, father);
- }
- }
- }
- //非最终子菜单
- else
- {
- if ("".equals(map.get("father"))) //默认顶级菜单的display为true
- map.put("display", "true");
- //若url为空则直接添加到list中
- list.add(map);
- }
- }
- //用于设置父菜单的display属性为true
- public void setParentDisplay(List list, String father)
- {
- Iterator it = list.listIterator();
- Map map = null;
- while (it.hasNext())
- { //循环list中的元素
- map = (HashMap) it.next();
- if (father.equals(map.get("name")))
- { //判断所获得的元素的name属性是否与指定的值相等
- if (map.get("display") == null)
- {
- map.put("display", "true");
- father = (String) map.get("father");
- if (!"".equals(father) && father != null)
- {
- setParentDisplay(list, father);
- }
- }
- break;
- }
- }
- }
- //将无效的元素移除
- public void removeDisplay(List list)
- {
- Iterator it = list.listIterator();
- Map map = null;
- while (it.hasNext())
- { //循环list中的元素
- map = (HashMap) it.next();
- if (map.get("display") == null)
- {
- it.remove();
- }
- }
- }
- //将列表打印出来
- public String MenuPrint(List list)
- {
- Iterator it = list.listIterator();
- Map map = null;
- String father = "";
- StringBuffer result = new StringBuffer(1000);
- int i = 0;
- int j = 0;
- // this "k" statement is addad
- int k = 0;
- while (it.hasNext())
- {
- map = (Map) it.next();
- while (!father.equals(map.get("father")))
- {
- result.append("</table>\n");
- if (!"".equals(map.get("father")))
- {
- result.append("</td>\n</tr>\n");
- }
- father = findFather(list, father);
- i--;
- }
- if ("".equals(map.get("father")) && k == 0)
- {
- j++;
- k = k + 1;
- result.append("<table width=\"198\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n");
- result.append("<tr>\n");
- result.append("<td align=\"left\" colspan=2><a onclick=\"openclose(img_").
- append(map.get("name")).
- append(",").
- append(map.get("name")).
- append(");\"><img src=\"./images/channel/close.gif\" align=\"left\" border=\"0\" name=\"img_").
- append(map.get("name")).
- append("\">").
- append(map.get("text")).
- append("</a></td>\n");
- result.append("</tr>\n");
- i++;
- result.append("<tr valign=\"top\">\n<td width=\"14px\"></td><td>\n");
- result.append("<table id=\"" + map.get("name") + "\" style=\"display:none\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n");
- father = (String) map.get("name");
- }
- else if (father.equals(map.get("father")))
- {
- result.append("<tr>\n");
- if ("".equals(map.get("url")) || map.get("url") == null)
- {
- j++;
- i++;
- result.append("<td align=\"left\" colspan=2><a onclick=\"openclose(img_").
- append(map.get("name")).
- append(",").
- append(map.get("name")).
- append(");\"><img src=\"./images/channel/close.gif\" align=\"left\" border=\"0\" name=\"img_").
- append(map.get("name")).
- append("\">").
- append(map.get("text")).
- append("</a></td>\n");
- result.append("</tr>\n");
- result.append("<tr valign=\"top\">\n<td width=\"14px\"></td>");
- result.append("<td>\n");
- result.append("<table id=\"" + map.get("name") + "\" style=\"display:none\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n");
- father = (String) map.get("name");
- }
- else
- {
- // this "if" statement is addad
- if ("".equals(map.get("father")))
- {
- result.append("<td align=\"left\" colspan=2><a><img src=\"./images/channel/close.gif\" align=\"left\" border=\"0\" name=\"img_").
- append(map.get("name")).
- append("\"></a><a href=\"").
- append(map.get("url")).
- append("\" target=\"_self\">").
- append(map.get("text")).
- append("</a></td>\n");
- result.append("</tr>\n");
- }
- else
- {
- result.append("<td align=\"left\" colspan=2><a><img src=\"./images/channel/circ.gif\" align=\"left\" border=\"0\" name=\"img_").
- append(map.get("name")).
- append("\"></a><a href=\"javascript:openWin('").
- append(map.get("url")).
- append("')\">").
- append(map.get("text")).
- append("</a></td>\n");
- result.append("</tr>\n");
- }
- }
- }
- }
- while (!"".equals(father))
- {
- result.append("</table>\n</td>\n</tr>\n");
- father = findFather(list, father);
- }
- result.append("</table>\n");
- return result.toString();
- }
- //用于查找上一级父菜单
- public String findFather(List list, String father)
- {
- Iterator it = list.listIterator();
- Map map = null;
- while (it.hasNext())
- {
- map = (Map) it.next();
- if (father.equals(map.get("name")))
- {
- father = (String) map.get("father");
- return father;
- }
- }
- return null;
- }
- public void addMenu(String name,String text,String url,String power,String father,Map map,List list,HttpServletRequest request) throws Exception
- {
- //Map map = null;
- //List list = new ArrayList();
- map = new HashMap();
- map.put("name", name);
- map.put("text", text);
- map.put("url", url);
- map.put("power", power);
- map.put("father", father);
- try
- {
- addMenu(list, map, request);
- }
- catch(Exception e)
- {
- }
- }
- %>
- <%
- String path = request.getContextPath();
- //数据区
- Map map = null;
- List list = new ArrayList();
- //level0
- map = new HashMap();
- map.put("name", "level0");
- map.put("text", "根菜单");
- map.put("url", "");
- map.put("power", "");
- map.put("father", "");
- addMenu(list, map, request);
- //level1
- map = new HashMap();
- map.put("name", "level10");
- map.put("text", "搜索引擎");
- map.put("url", "");
- map.put("power", "");
- map.put("father", "level0");
- addMenu(list, map, request);
- //level2
- map = new HashMap();
- map.put("name", "level20");
- map.put("text", "百度");
- map.put("url", "http://www.baidu.com");
- map.put("power", "");
- map.put("father", "level10");
- addMenu(list, map, request);
- map = new HashMap();
- map.put("name", "level21");
- map.put("text", "GOOGLE");
- map.put("url", "http://www.google.com");
- map.put("power", "");
- map.put("father", "level10");
- addMenu(list, map, request);
- //level1
- map = new HashMap();
- map.put("name", "level11");
- map.put("text", "消息网站");
- map.put("url", "");
- map.put("power", "");
- map.put("father", "level0");
- addMenu(list, map, request);
- //level2
- map = new HashMap();
- map.put("name", "level22");
- map.put("text", "人民网");
- map.put("url", "http://www.people.com.cn");
- map.put("power", "");
- map.put("father", "level11");
- addMenu(list, map, request);
- removeDisplay(list);
- String userName = "King";
- %>
- <html>
- <head>
- <title>导航菜单</title>
- <STYLE type="text/css">
- BODY {
- FONT-SIZE: 9pt; FONT-FAMILY: sans-serif;background-color:#A9C3F0;
- }
- A
- {
- COLOR: 000000; TEXT-DECORATION: none
- }
- A:hover
- {
- COLOR: cc3300; TEXT-DECORATION: none
- }
- A:link {
- FONT-FAMILY: sans-serif; TEXT-DECORATION: none
- }
- A:active {
- FONT-FAMILY: sans-serif; TEXT-DECORATION: none
- }
- A:visited {
- FONT-FAMILY: sans-serif; TEXT-DECORATION: none
- }
- B {
- FONT-SIZE: 14px; COLOR: #000000
- }
- TABLE
- {
- font:9pt;color: #cc3300
- }
- TD {
- FONT-SIZE: 12px;color:#363636
- }
- </STYLE>
- <script language="JavaScript">
- function openclose(param1, param)
- {
- if (param.style.display == "none")
- {
- param.style.display = "";
- param1.src = "./images/channel/open.gif";
- }
- else
- {
- param.style.display = "none";
- param1.src = "./images/channel/close.gif";
- }
- }
- function openWin(url)
- {
- parent.LoginTime.location.reload();
- //window.open(url,"forum");
- parent.forum.location = url;
- }
- window.onload = function(){
- //openclose(img_level0, level0);
- openAllMenu();
- }
- function openAllMenu()
- {
- var tb = document.getElementsByTagName("TABLE");
- for (var i = 0; i < tb.length; i++)
- {
- if (tb[i].id == null || tb[i].id == "") continue;
- openclose(eval("img_" + tb[i].id), tb[i]);
- }
- }
- CollectGarbage();
- </script>
- </head>
- <body topmargin=10 leftmargin=0>
- <table width="100%" height="100%" border="0" align="center" cellpadding="1" cellspacing="0" class="blue">
- <tr>
- <td cellspacing="2" height="23" background="./images/bgwelcome.png"> <strong>欢迎您-<%=(String) userName%></strong></td>
- </tr>
- <tr>
- <td valign="top" height="100%" background="./images/bg.png"><%=MenuPrint(list)%></td>
- </tr>
- </table>
- </body>
- </html>
相关推荐
在Java编程中,树型菜单是一种常见的用户界面元素,它以层次结构展示数据,便于用户进行导航和操作。本文将详细讲解如何使用Java来构建一个动态的、可交互的树型菜单,包括从数据库获取数据、创建树节点、实现添加和...
基于java的开发源码-JSP树型菜单 DTree.zip 基于java的开发源码-JSP树型菜单 DTree.zip 基于java的开发源码-JSP树型菜单 DTree.zip 基于java的开发源码-JSP树型菜单 DTree.zip 基于java的开发源码-JSP树型菜单 DTree...
在Java编程环境中,构建树型菜单是常见的需求,特别是在Web应用程序中,用于组织和展示层次化的数据。这里我们将深入探讨如何使用JavaScript库Dtree和Xtree来创建动态的树型菜单,以及它们在Java环境中的应用。 ...
总的来说,这个项目涉及前端和后端的紧密协作,利用JavaScript的交互性,jsp的动态内容生成,Java的业务逻辑处理,以及MySQL的数据持久化,共同构建了一个可扩展、灵活的树型菜单系统。这样的实现方式既能够充分利用...
在IT领域,构建无限级树型菜单是一种常见的需求,特别是在网站导航、文件系统或数据库结构的展示中。传统的实现方式通常使用递归算法,但这种方法可能会导致内存消耗过大,尤其是在菜单层级很深的情况下。本主题介绍...
在桌面应用中,许多编程语言如Java、C#和Python都有内置或第三方库支持树型菜单的创建。例如,Java Swing 和 JavaFX 提供了JTree组件,C#的Windows Forms有TreeView控件,Python的Tkinter库也有类似的Treeview控件,...
在Java编程中,动态树型菜单是一种常见的UI设计元素,尤其在管理大量具有层次结构的数据时,如文件系统、组织架构或数据库结构等。本文将深入探讨如何使用Java实现动态树型菜单,以及其背后的原理。 首先,我们需要...
该 树型菜单是针对权限管理而写的,为了方便用JAVA来写了一个动态生成树型菜单。这个可以帮助你更好地进行权限控制管理。
树型菜单是一种常见的UI元素,它允许用户以层次结构浏览和选择数据。在本篇文章中,我们将深入探讨如何使用JavaScript来实现这样的特效。 首先,树型菜单的核心在于其递归的结构,通常使用HTML的`<ul>`和`<li>`元素...
在Java编程中,我们可以使用Java Swing或JavaFX库来实现树型菜单。例如,`javax.swing.JTree`类是Java Swing中用于创建树型菜单的组件。 分支菜单,有时也被称为下拉菜单,通常用于显示一组相关的选项,当用户点击...
在本资源"基于Java的实例开发源码-JSP树型菜单 DTree.zip"中,我们主要探讨的是如何在Java JSP应用中实现一种交互式的树型菜单。这种菜单通常用于组织和展示层次结构的数据,例如网站导航、文件系统或者数据库结构。...
### Java操作XML文件读写与树型菜单生成详解 #### 一、背景介绍 在现代软件开发中,XML(Extensible Markup Language)被广泛应用于数据交换、配置文件管理以及多种跨平台的应用场景中。Java作为一种重要的后端开发...
JSP(JavaServer Pages)中的DTree是一款高效且灵活的树型菜单实现,它结合了HTML、JavaScript以及CSS技术,提供了丰富的功能和自定义选项。本篇文章将对JSP树型菜单DTree进行深入探讨。 首先,DTree的核心在于其...
无限级可刷新Js树型菜单是一种常见的前端交互设计,它在网页应用中广泛用于展示具有层级关系的数据,如文件系统、组织结构、导航菜单等。本篇将详细讲解这种菜单的实现原理、核心功能和使用方法。 首先,无限级表示...
在本主题中,我们将深入探讨如何使用DTree.java来实现一个树型菜单。DTree是一个流行的JavaScript库,用于在JSP页面上构建可交互的树形结构,常用于网站导航或数据展示。 首先,DTree.js是这个树型菜单的核心脚本...
总的来说,"JSP+Ajax无刷新树型菜单数据库版"是一个结合了前后端技术的实例,展示了如何利用JSP构建用户界面,通过Ajax实现动态数据加载,同时利用SQL管理数据库,从而提供了一个高效、交互性强的树型菜单系统。...
"基于Java的源码-JSP树型菜单 DTree.zip" 这个标题揭示了我们正在处理一个与Java编程相关的项目,具体来说是JSP(Java Server Pages)技术的应用。JSP是一种用于开发动态网页的技术,它允许在服务器端执行Java代码,...
本压缩包"基于java的JSP树型菜单 DTree.zip"提供了实现JSP页面中树形菜单功能的资源。下面将详细介绍这些资源及其在实际应用中的作用。 首先,`dtree.css`是样式表文件,它包含了树形菜单的样式定义。在网页开发中...
这个压缩包"基于Java的实例源码-JSP树型菜单 DTree.zip"包含了一个使用Java技术构建的JSP树型菜单应用。这个菜单系统被称为DTree,它在Web应用程序中常用于展示层次结构的数据,例如目录结构、组织架构或者多级分类...
java源码资源JSP树型菜单 DTree提取方式是百度网盘分享地址