深圳易捷网络科技注册咨询网-jiujiuya.com.cn 返回首页

java在网站制作实现多级菜单方法

信息来源:深圳市易捷网络科技有限公司
信息发布时间:2025-5-4

java实现多级菜单的方法
在网站开发的时候我们会对网站的栏目进行分类,一个栏目可以有多个子分类,一个子分类又可以有分裂
1,查询菜单树:
publicList<Map<String,Object>>queryCategoryInfo(){
List<Map<String,Object>>allMenu=queryAllCategory();
//根节点
List<Map<String,Object>>rootMenu=newArrayList<Map<String,Object>>();
for(Map<String,Object>nav:allMenu){
StringparentId=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方法*/
Stringid=String.valueOf(nav.get("category_id"));
List<Map<String,Object>>childList=getChild(id,allMenu);
//nav.setChildren(childList);//给根节点设置子节点
nav.put("child",childList);
}

returnrootMenu;
}


/**
*获取子节点
*@paramid父节点id
*@paramallMenu所有菜单列表
*@return每个根节点下,所有子菜单列表
*/
privateList<Map<String,Object>>getChild(Stringid,List<Map<String,Object>>allMenu){
//子菜单
List<Map<String,Object>>childList=newArrayList<Map<String,Object>>();
for(Map<String,Object>nav:allMenu){
//遍历所有节点,将所有菜单的父id与传过来的根节点的id比较
//相等说明:为该根节点的子节点。
StringparentId=String.valueOf(nav.get("parent_id"));
if(id.equals(parentId)){
childList.add(nav);
}
}
//递归
for(Map<String,Object>nav:childList){
StringtempId=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){
returnnewArrayList<Map<String,Object>>();
}
returnchildList;
}

2,Java集合之List多级菜单;
packagecom.menu;
importjava.util.List;
publicclassTestCategory
{
publicstaticStringlevel="";
publicstaticvoidmain(String[]args)
{
MenuManagermm=newMenuManager();
mm.add(newMenu(0,-1,"主控管理系统"));
mm.add(newMenu(100,0,"主控管理"));
mm.add(newMenu(101,0,"公共信息"));
mm.add(newMenu(102,0,"本单位管理"));
mm.add(newMenu(103,0,"下属管理"));
mm.add(newMenu(104,0,"部门管理"));
mm.add(newMenu(105,0,"职位管理"));
mm.add(newMenu(10000,104,"部门类别"));
mm.add(newMenu(10001,104,"部门信息"));
List<Menu>menuList=mm.getMenuList();
for(inti=0;i<menuList.size();i++)
{
Menumenu=menuList.get(i);
if(menu.getPid()==-1)
{
System.out.println(menu.getName());
showMenu(menu,menuList);
break;
}
}
}
publicstaticvoidshowMenu(MenuparentMenu,List<Menu>menuList)
{
level+="----";
for(inti=0;i<menuList.size();i++)
{
Menumenu=menuList.get(i);
if(menu.getPid()==parentMenu.getId())
{
System.out.println(level+menu.getName());
showMenu(menu,menuList);
}
}
level=level.substring(0,level.length()-4);
}
}


packagecom.menu;
publicclassMenu
{
privateintid;
privateintpid;
privateStringname;
publicMenu(intid,intpid,Stringname)
{
super();
this.id=id;
this.pid=pid;
this.name=name;
}
publicintgetId()
{
returnid;
}
publicvoidsetId(intid)
{
this.id=id;
}
publicintgetPid()
{
returnpid;
}
publicvoidsetPid(intpid)
{
this.pid=pid;
}
publicStringgetName()
{
returnname;
}
publicvoidsetName(Stringname)
{
this.name=name;
}

}


packagecom.menu;
importjava.util.ArrayList;
importjava.util.List;
publicclassMenuManager
{
privateList<Menu>menuList=newArrayList<Menu>();
publicvoidadd(Menumenu)
{
menuList.add(menu);
}
publicList<Menu>getMenuList()
{
returnmenuList;
}
publicvoidsetMenuList(List<Menu>menuList)
{
this.menuList=menuList;
}

}


相关行业资讯

1、网站建设解决这些问题才是重点
2、网站建设后台程序语言介绍
3、做网站运营推广营销的作用有哪些?
4、关于百度竞价模式的简单分析
5、易捷科技告诉你这些坑不能跳
6、各种网络推广方式,企业到底该如何选择
7、网络推广之链接锚文字怎么做?
8、优秀的网站建设公司必须具备用户思维
9、网站建设技巧大揭秘速来围观
10、企业网站内容如何设计更方便优化
11、医疗行业怎么做SEO效果好
12、从用户角度出发做网页设计,会更精准更有价值
13、为什么seo优化的时候要定时发文章?
14、如何解决网站权重过低问题
15、搜索优化必然的写作才能
16、关于网站建设行业未来发展的趋势分析
17、网站的收录数量与权重、PR的关系
18、快速提高网站收录的最佳方法
19、网站建设规划设计要考虑什么事项
20、CU.CC超短可解析免费域名注册教程
21、网站开发最重要的五个技巧?
22、网站建设新手指南向导
23、为何人家不愿和你交换友情链接
24、在线客服对企业制作网站的用武之地
25、影响网站收录的因素有哪些?
26、易捷网络探讨关于百度搜索的几个问题
27、不懂代码能否做好推广优化想成为推广优化高手应该如何去做
28、用专题页面来做搜索量大的长尾关键词
29、站点的优化直接受网页设计根基的影响
30、网站优化:建站过程中应注意的10个细节问题
31、Google Analytics中的基本度量二 “访问次数”
32、京东九年亏损188亿,为什么没倒闭
33、如何通过网络赚钱?网络赚钱方法大全
34、网站建设浅谈什么是网站用户体验
35、百度不是你家的不要认为他会对你区别对待
36、网站建设当中要注意到哪些环节的呢
37、近期疯狂的淘客网站之个人分析
38、为什么不建议选择模板建站
39、企业的网站设计如何“吸睛”
40、个人可以做网站吗
41、七个小细节降低网站跳出率
42、解析SEO优化入门教程总纲
43、第一次推广一个新论坛的失败经验
44、简单5步设计好软文的关键词
45、深圳网站优化的页面如何做规划
46、网站设计提速的几大绝招
47、推广优化几个重要关键点站长不能放过
48、如何做好网站设计
49、网站的稳定性有什么要求
50、2014年各种编程语言的薪资和市场需求

相关视频推荐

自动化行业网站制作焊锡机/点胶机/螺丝机网站
企业网站制作新模式全部仅需800元/年
如何提高企叫网站打开速度
公司网站到期了该怎小续费
企业为什么必须要做一网站
企业网站的导航栏一般要规划哪些栏目
国际物流FBA物流网站建设深圳易捷网站公司公司
银制品金银器网站建设深圳易捷网站公司
包装印刷行业网站设计
膜结构公司网站设计
工商财务公司网站设计
购买一个域名需要多少钱
企业网站建设云虚拟主机需要多少钱
财务公言的网站怎么做才能显示在搜索引擎的首页
网站建设一站式服务
深圳网站建设公司网站排行榜
深圳市易捷网络科技有限公司版权所有    粤ICP备2022153140号