一次数据库查询,封装成树型结构数据 List<TreeNodeVo>
/** * 查询所有,返回菜单树 * @return List<TreeNodeVo> */ public List<TreeNodeVo> getTreeListAll() { List<Menu> menuList = menuDao.getListAll(); List<TreeNodeVo> tempTreeNodeVos = new ArrayList(); TreeNodeVo tempTreeNode; for (Menu menu : menuList) { tempTreeNode = new TreeNodeVo(); tempTreeNode.setId(menu.getId()); tempTreeNode.setParentId(menu.getParentId()); tempTreeNode.setText(menu.getName()); if ("1".equals(menu.getLeaf())) { tempTreeNode.setState("open"); } else { tempTreeNode.setState("closed"); } tempTreeNode.setUrl(menu.getUrl()); tempTreeNodeVos.add(tempTreeNode); } if (tempTreeNodeVos != null) { List<TreeNodeVo> treeNodeVos = new ArrayList(); Map<String, TreeNodeVo> map = new LinkedHashMap<String, TreeNodeVo>(); for (TreeNodeVo tn : tempTreeNodeVos) { map.put(tn.getId(), tn); } TreeNodeVo treeNodeVo; TreeNodeVo pTreeNodeVo; for (String id : map.keySet()) { treeNodeVo = map.get(id); if (treeNodeVo.getParentId() == null) { treeNodeVos.add(treeNodeVo); } else { pTreeNodeVo = map.get(treeNodeVo.getParentId()); List<TreeNodeVo> children = pTreeNodeVo.getChildren(); if(children!=null){ children.add(treeNodeVo); } else { children = new ArrayList(); children.add(treeNodeVo); pTreeNodeVo.setChildren(children); } } } return treeNodeVos; } return null; }
参考:
easyui tree 树 TreeNodeVo
http://happyqing.iteye.com/blog/2371178
将数据封装成树形结构,无限级深,
http://www.oschina.net/code/snippet_915857_22297
/** * 包装成树形结构 (全部属性) * 将数据封装成树形结构,无限级深,只需遍历两次 @param tree为List类型存放的初始VO对象。该vo类必须有id,parentId,children字段。children为List类型 * @param tree * @return * @throws Exception */ public static List factorTree(List tree) throws Exception{ if (tree != null) { List t_list = new ArrayList(); Map map = new HashMap(); for (Object o : tree) { Class clazz = o.getClass(); Field id = clazz.getDeclaredField("id"); if (!id.isAccessible()) { id.setAccessible(true); } Long lId = (Long) id.get(o); map.put(lId, o); } for (Object o : map.keySet()) { Long cId = (Long) o; Object obj = map.get(cId); Class clazz = obj.getClass(); Field pId = clazz.getDeclaredField("parentId"); if (!pId.isAccessible()) { pId.setAccessible(true); } Long id = (Long) pId.get(obj); if (id == null) { t_list.add(obj); } else { Object object = map.get(id); Class clazz1 = object.getClass(); Field children = clazz1.getDeclaredField("children"); if (!children.isAccessible()) { children.setAccessible(true); } List list = (List) children.get(object); if (CollectionUtils.isEmpty(list)) { list = new ArrayList(); } list.add(obj); children.set(object, list); } } return t_list; } return null; }
相关推荐
在"Java后端easyUI框架sql查询"这个场景中,核心是利用Java后端处理SQL查询并返回数据到前端。Java后端主要涉及以下几个知识点: 1. **JDBC(Java Database Connectivity)**:这是Java连接数据库的标准API,允许...
7. **项目结构**:理解一个完整的EasyUI+Java项目通常包含哪些部分,如静态资源目录、Java源代码目录、配置文件等。 8. **注释与文档**:项目中的详细备注是学习的关键,它能帮助理解代码背后的意图和实现细节。 ...
在本项目中,"easyui datagrid 分页查询样例"是利用EasyUI Datagrid与后端SpringMVC框架集成,实现数据的后台分页查询功能。下面将详细阐述这一知识点。 首先,EasyUI Datagrid的核心在于其强大的数据绑定能力,它...
Java EasyUI是一个基于jQuery的轻量级前端框架,它提供了丰富的UI组件,使得开发者能够快速构建美观、响应式的Web应用。在Java后端与EasyUI前端交互的过程中,即时消息框是一种常用的反馈机制,用于向用户展示操作...
- **模糊查询**:EasyUI的表格组件支持模糊查询,可以通过输入关键词在数据集中进行搜索,提高用户交互体验。 - **导出数据**:EasyUI可以结合后台服务,将表格数据导出为Excel或CSV格式,方便用户保存和分析。 2...
Java和EasyUI是Web开发领域中的重要工具,本项目实例结合了两者,提供了一个完整的应用示例。在本文中,我们将深入探讨Java和EasyUI的相关知识点,并基于项目的实际内容进行详细解析。 首先,Java是一种广泛使用的...
该工具类实现java导出树形结构的方法,并未采用excel分组功能实现,而是根据树节点显示层级设置excel样式。针对easyUi,treeGrid开发的导出excel功能。方法简便实用、性强、通俗易懂。项目中亲测,no problem。
在“easyui 树形结构样例”中,我们主要探讨的是如何使用EasyUI实现一个可操作的树形结构,特别是在下拉框中展示的数据结构。这种树形结构在很多业务场景中都很常见,如组织结构管理、文件目录浏览等。 首先,我们...
这个“java源码 EasyUI-2 后台框架”是一个基于 Java 和 EasyUI 的后台管理系统框架,主要用于展示如何将 EasyUI 与后端服务进行集成,实现数据的动态展示和交互。 首先,我们来了解一下 EasyUI 在后台开发中的应用...
【Java EasyUi增删改查加分页案例】是一个适合初学者的实践项目,它涵盖了Web开发中的基础功能,包括添加、删除、修改和查询数据,并且整合了分页功能。EasyUI是一个基于jQuery的UI框架,它提供了丰富的组件,简化了...
EasyUI的树组件可以解析这些数据并生成相应的树结构。在后端,你可以使用Java的Jackson库来序列化对象为JSON,再通过HTTP响应返回给前端。 下拉框(Select)的动态加载也是常见的需求。例如,根据某个条件(如父...
1. **EasyUI**:这是一个基于jQuery的前端UI库,提供了丰富的组件,如表格、下拉框、树形结构、对话框等,便于快速构建用户界面。EasyUI简化了HTML和CSS的编写,使得开发者可以更专注于业务逻辑,而不是页面的样式...
【Java EasyUI 项目演练详解】 Java EasyUI 是一套基于 jQuery 的 UI 组件库,用于构建美观、响应式的 Web 应用程序。本专题资料主要针对2021-2022年的 Java EasyUI 项目演练,涵盖了从布局设计到数据库操作的全...
一头扎进 easyui 视频教程 java1234出品 第2部分 共2部分
在Java环境中,EasyUI 被广泛用于后端数据的展示和交互,尤其适用于构建管理系统。下面我们将详细探讨 EasyUI 在 Java 系统中的应用及其相关知识点。 1. **jQuery EasyUI 结构**: - EasyUI 是基于 jQuery 的,...
Java、jQuery和EasyUI是Web开发中的重要工具,它们各自扮演着不同的角色,结合使用可以构建出高效且用户友好的界面。在这个压缩包文件中,包含的资源将帮助你理解和运用这三个技术。 EasyUI是一个基于jQuery的前端...
3. **分页与排序**:EasyUI Grid支持分页和排序功能,后台Java需要根据前端传来的参数(如页码、每页大小、排序字段和方向)进行数据库查询,返回对应的分页数据。 4. **树形结构**:EasyUI的Tree组件可用于展示...
除此之外,Java EasyUI 还包含许多其他组件,如Grid(数据网格)、Tree(树形结构)、Panel(面板)等,它们都有各自的配置参数、事件和方法。通过深入学习这个中文培训文档,开发者可以掌握EasyUI的各种功能,并将...
该项目为基于Java的JSP EasyUI封装设计源码,共包含1284个文件,其中CSS文件469个,PNG图片文件375个,Java源文件178个,JavaScript文件159个,JSP文件37个,GIF图片文件33个,XML文件3个,TLD文件3个,JSON文件3个...
在Java和EasyUI技术结合应用中,实现增删改查(CRUD)功能是Web开发中的基础且重要的环节。EasyUI是一个基于jQuery的UI库,提供了丰富的组件和样式,简化了前端界面的开发,而Java作为后端语言,通常与Spring、...