在线咨询
企微直连
公众号
招聘
您需要
AI
互联网
顾问提供专业咨询
残忍拒绝
立即咨询
AI人工智能 · VR · AR · 智慧博物馆 · 智慧公园 · 景区 · 文创 · 动画 · 游戏 · 年度运营
大模型定制 · WEB3 · 元宇宙 · 区块链 · 高端网站建设 · 小程序 · APP · 微信 · H5 · 电商
AI互联网服务
AI解决方案
百科
案例
我们
010-64928252
服务
北京
上海
广州
成都
智能
设计
智慧博物馆
想得到的智慧博物馆新玩法,可能都在这里
智慧公园、景区
听说,在智能公园中漫步才是最惬意的事
智慧社区
AI技术加持,社区系统真正互联互通
智慧医院
增强诊前服务、辅助诊中流程、优化诊后交流
AI互联网服务
AI网站建设
品牌官网建设
政府、集团网站群建设
行业门户网站建设
电商网站建设
社区网站建设
短视频社交平台建设
业务系统定制开发
移动端、融媒体
产品
网络运营
UI/UE/UX
AI解决方案
智慧公园解决方案
智慧博物馆解决方案
智慧景区解决方案
云展厅解决方案
智慧社区解决方案
智慧票务解决方案
智慧医院解决方案
智慧学校解决方案
RPA解决方案
定制大模型解决方案
区块链
元宇宙
NFT数字藏品
DAO
GAMEFI
X TO EARN
百科
网站建设
网络推广
运营维护
案例
博物馆
金融行业
智慧公园
地产行业
医疗行业
高校、教育
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;
}
}
400-6446-365 / 010-64928252
我想要个更针对我需求的方案
上一篇文章: Android应用程序的周期和网络优化
下一篇文章:网站数据库连接池作用及配置
看过此文章的人也看过
总结:2016关于网站设计...
网站设计中图片属性和网站配...
网站制作中网页的兼容性和网...
网站设计的细节分析及设计发...
不让用户产生反感的网站设计...
查看更多
404
404
您所访问的页面未找到! 您可以 :
返回首页