扫码关注官方订阅号
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
先按条件查出每一页的ID数组 用你分页的方式再用ID数组 查询出你需要的详细数据
之前做过一个类似的无限级的菜单树,我大概说一下我的思路,具体能不能实现你可以试试,主要是通过Map+递归实现层层嵌套,然后我觉的可以对一级的回复坐分页,结构部分代码你可以参考下:
Map
递归
public class ResourceTree { public static Map<String, Object> mapArray = new LinkedHashMap<String, Object>(); public List<Resource> menuCommon; public List<Object> list = new ArrayList<Object>(); public List<Object> menuList(List<Resource> resource) { this.menuCommon = resource; for (Resource x : resource) { Map<String, Object> mapArr = new LinkedHashMap<String, Object>(); if (x.getParentId() == 0) { mapArr.put("id", x.getId()); mapArr.put("text", x.getResourceName()); mapArr.put("resourceUrl", x.getUrl()); mapArr.put("resourceParent", x.getParentId()); mapArr.put("resourceType", x.getType()); mapArr.put("resourceTag", x.getResourceCode()); // mapArr.put("resourceIcon", x.getResourceIcon()); // mapArr.put("resourceParentPath", x.getResourceParentPath()); mapArr.put("children", menuChild(x.getId())); list.add(mapArr); } } return list; } public List<?> menuChild(int id) { List<Object> lists = new ArrayList<Object>(); for (Resource a : menuCommon) { Map<String, Object> childArray = new LinkedHashMap<String, Object>(); if (a.getParentId() == id) { childArray.put("id", a.getId()); childArray.put("text", a.getResourceName()); childArray.put("resourceUrl", a.getUrl()); childArray.put("resourceParent", a.getParentId()); childArray.put("resourceType", a.getType()); childArray.put("resourceTag", a.getResourceCode()); // childArray.put("resourceIcon", a.getResourceIcon()); // childArray.put("resourceParentPath", a.getResourceParentPath()); childArray.put("children", menuChild(a.getId())); lists.add(childArray); } } return lists; } }
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
先按条件查出每一页的ID数组 用你分页的方式
再用ID数组 查询出你需要的详细数据
之前做过一个类似的无限级的菜单树,我大概说一下我的思路,具体能不能实现你可以试试,
主要是通过
Map+递归实现层层嵌套,然后我觉的可以对一级的回复坐分页,结构部分代码你可以参考下: