AI
网站建设
AI
解决方案
案例
百科
我们
400-6446-365
服务
北京
上海
广州
成都
设计
智能
智慧博物馆
想得到的智慧博物馆新玩法,可能都在这里
智慧公园
听说,在智能公园中漫步才是最惬意的事
智慧社区
AI技术加持,社区系统真正互联互通
智慧医院
增强诊前服务、辅助诊中流程、优化诊后交流
AI
网站建设
网站建设
品牌官网建设
集团站群建设
行业门户网站建设
社区网站建设
业务系统定制开发
IT平台整体解决方案
电商网站建设
B2C网站建设
B2B网站建设
B2B2C网站建设
积分商城网站建设
众筹网站建设
移动端、融媒体
手机网站建设
微网站
APP开发
小程序开发
快应用开发
融媒体
网络运营
网站代运营服务
互动营销服务
微信微博运营服务
游戏营销服务
网络推广服务
搜索引擎推广服务
AI
解决方案
智慧博物馆解决方案
智慧公园解决方案
智慧医院解决方案
智慧学校解决方案
智慧党建解决方案
智慧社区解决方案
RPA解决方案
云展厅解决方案
案例
金融行业专题
医疗行业专题
地产行业专题
教育行业专题
博物馆专题
智慧公园专题
百科
网站建设
网络推广
运营维护
我们
媒体报道
加入分形
java在网站制作实现多级菜单方法
标签:
网站制作
网站建设
2019-05-10
java实现多级菜单的方法
在
网站开发
的时候我们会对网站的栏目进行分类,一个栏目可以有多个子分类,一个子分类又可以有分裂
1,查询菜单树:
public List<Map<String, Object>> queryCategoryInfo() {
List<Map<String, Object>> allMenu = queryAllCategory();
//根节点
List<Map<String, Object>> rootMenu = new ArrayList<Map<String, Object>>();
for (Map<String, Object> nav : allMenu) {
String parentId = String.valueOf(nav.get("parent_id"));
if(parentId.equals("0")){//父节点是0的,为根节点。
rootMenu.add(nav);
}
}
/* 根据Menu类的order排序 */
// Collections.sort(rootMenu, order());
//为根菜单设置子菜单,getClild是递归调用的
for (Map<String, Object> nav : rootMenu) {
/* 获取根节点下的所有子节点 使用getChild方法*/
String id = String.valueOf(nav.get("category_id"));
List<Map<String, Object>> childList = getChild(id, allMenu);
// nav.setChildren(childList);//给根节点设置子节点
nav.put("child", childList);
}
return rootMenu;
}
/**
* 获取子节点
* @param id 父节点id
* @param allMenu 所有菜单列表
* @return 每个根节点下,所有子菜单列表
*/
private List<Map<String, Object>> getChild(String id,List<Map<String, Object>> allMenu){
//子菜单
List<Map<String, Object>> childList = new ArrayList<Map<String, Object>>();
for (Map<String, Object> nav : allMenu) {
// 遍历所有节点,将所有菜单的父id与传过来的根节点的id比较
//相等说明:为该根节点的子节点。
String parentId = String.valueOf(nav.get("parent_id"));
if(id.equals(parentId)){
childList.add(nav);
}
}
//递归
for (Map<String, Object> nav : childList) {
String tempId = String.valueOf(nav.get("category_id"));
//nav.setChildren(,getChild(tempId, allMenu));
nav.put("child", getChild(tempId, allMenu));
}
//Collections.sort(childList,order());//排序
//如果节点下没有子节点,返回一个空List(递归退出)
if(childList.size() == 0){
return new ArrayList<Map<String, Object>>();
}
return childList;
}
2,Java 集合 之 List 多级菜单;
package com.menu;
import java.util.List;
public class TestCategory
{
public static String level="";
public static void main(String[] args)
{
MenuManager mm=new MenuManager();
mm.add(new Menu(0,-1,"主控管理系统"));
mm.add(new Menu(100,0,"主控管理"));
mm.add(new Menu(101,0,"公共信息"));
mm.add(new Menu(102,0,"本单位管理"));
mm.add(new Menu(103,0,"下属管理"));
mm.add(new Menu(104,0,"部门管理"));
mm.add(new Menu(105,0,"职位管理"));
mm.add(new Menu(10000,104,"部门类别"));
mm.add(new Menu(10001,104,"部门信息"));
List<Menu> menuList=mm.getMenuList();
for(int i=0;i<menuList.size();i++)
{
Menu menu=menuList.get(i);
if(menu.getPid()==-1)
{
System.out.println(menu.getName());
showMenu(menu,menuList);
break;
}
}
}
public static void showMenu(Menu parentMenu,List<Menu> menuList)
{
level+="----";
for(int i=0;i<menuList.size();i++)
{
Menu menu=menuList.get(i);
if(menu.getPid()==parentMenu.getId())
{
System.out.println(level+menu.getName());
showMenu(menu,menuList);
}
}
level=level.substring(0,level.length()-4);
}
}
package com.menu;
public class Menu
{
private int id;
private int pid;
private String name;
public Menu(int id, int pid, String name)
{
super();
this.id = id;
this.pid = pid;
this.name = name;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public int getPid()
{
return pid;
}
public void setPid(int pid)
{
this.pid = pid;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
package com.menu;
import java.util.ArrayList;
import java.util.List;
public class MenuManager
{
private List<Menu> menuList=new ArrayList<Menu>();
public void add(Menu menu)
{
menuList.add(menu);
}
public List<Menu> getMenuList()
{
return menuList;
}
public void setMenuList(List<Menu> menuList)
{
this.menuList = menuList;
}
}
TAG标签耗时:0.0085139274597168 秒
010-64928252/400-6446-365
我现在就想找顾问聊聊
上一篇文章:网站数据库连接池作用及配置
下一篇文章: Android应用程序的周期和网络优化
相关资讯
咨询类网站建设的6个技巧
网站制作的一些经验介绍
高端网站建设的一些经验
如何选择最好的网站设计公司?
网站数据库连接池作用及配置
查看更多
海华集团
石油化工
网站建设
网页设计
长安客车
汽车行业
网站建设
网页设计
厦门特房波特曼七星湾酒店
餐饮酒店
网站建设
网页设计
同方计算机
电信通讯
网站建设
网站设计
中科雁栖湖
机构组织
网站建设
定制开发
系统开发
网联清算
金融保险
网站建设
定制开发
更多网站案例
更多解决方案
让决策变的简单
好的开始是成功的一半
立即体验服务
免费电话
在线咨询
官方微信
招聘
您需要 AI+互联网
顾问提供专业咨询
残忍拒绝
立即咨询
AI人工智能 · VR · AR · 智慧博物馆 · 智慧公园 · 景区 · 文创 · 动画
高端网站建设 · 小程序 · APP · 微信 · H5 · 游戏 · 电商 · 年度运营
招聘