素材牛VIP会员
web后台管理系统,左侧菜单该如何构建
 97***84  分类:Java代码  人气:1194  回帖:3  发布于6年前 收藏

数据库有一张表,存的是一条条菜单记录,里面包含主键id,上级菜单id,url
我可以通过数据库查询,以list的形式查询出全部记录,那么我在前台jsp该怎样显示呢?
我想到有几种方式:
1.将查询出的list直接传到JSP,然后循环,先循环出一级菜单,再根据一级菜单id循环生成二级菜单,但是如果这样,有很多个三级,四级菜单的时候,会循环很多很多次.
2.在后台将菜单拼成json格式的数据,然后在前台使用js生成菜单.
如果是使用第二种方式,那么在后台该怎样拼接成json格式呢,最简单的做法就是先从数据库查询出一级菜单,再根据一级菜单查询二级菜单,那这样和第一种方式没什么区别.
所以想问下,有没有做过的或者了解这方面功能的,都是怎样实现比较好,可以提供个思路吗

效果图大概是这样

问题已解决,我是根据用户权限,查询出用户能看到的全部菜单,然后再用java构建成我需要的数据格式

如下图,只需要将查询出的子菜单放进父级菜单对象的list中就行

讨论这个帖子(3)垃圾回帖将一律封号处理……

Lv6 码匠
wt***00 UI设计师 6年前#1

从数据库中查询出数据应当是按显示的顺序的,或者经过处理处理成要显示的顺序。
构建一颗空树
递归的插入树就可以了

Lv1 新人
岛***疤 页面重构设计 6年前#2

最近一个项目是这样来实现的:

数据库中的表为resource, 对应的pojo为Resource, 类Resouce中有关联关系List<Resource> sonResource.(hibernate关联)。所以只要取顶级的Resource, 顶级中会包含子级。 数据传到前台, 自己处理下父子关系就好了。

Lv6 码匠
on***de JAVA开发工程师 6年前#3
  1. sql查询树形结构可以用connect by,一次性把整个树查询出来

  2. 也可以先展示一级菜单,点击一级菜单的时候再ajax查询下级菜单,这样就不用一开始就把整个树都构建完成

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取