`
happyqing
  • 浏览: 3204680 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java easyui 树型结构 查询 封装

阅读更多

 

一次数据库查询,封装成树型结构数据 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后端easyUI框架sql查询"这个场景中,核心是利用Java后端处理SQL查询并返回数据到前端。Java后端主要涉及以下几个知识点: 1. **JDBC(Java Database Connectivity)**:这是Java连接数据库的标准API,允许...

    EasyUI+java demo

    7. **项目结构**:理解一个完整的EasyUI+Java项目通常包含哪些部分,如静态资源目录、Java源代码目录、配置文件等。 8. **注释与文档**:项目中的详细备注是学习的关键,它能帮助理解代码背后的意图和实现细节。 ...

    easyui datagrid 分页查询样例

    在本项目中,"easyui datagrid 分页查询样例"是利用EasyUI Datagrid与后端SpringMVC框架集成,实现数据的后台分页查询功能。下面将详细阐述这一知识点。 首先,EasyUI Datagrid的核心在于其强大的数据绑定能力,它...

    java easyui即时消息框实例

    Java EasyUI是一个基于jQuery的轻量级前端框架,它提供了丰富的UI组件,使得开发者能够快速构建美观、响应式的Web应用。在Java后端与EasyUI前端交互的过程中,即时消息框是一种常用的反馈机制,用于向用户展示操作...

    easyui+ssh(增删改模糊查询,导出数据)

    - **模糊查询**:EasyUI的表格组件支持模糊查询,可以通过输入关键词在数据集中进行搜索,提高用户交互体验。 - **导出数据**:EasyUI可以结合后台服务,将表格数据导出为Excel或CSV格式,方便用户保存和分析。 2...

    java+EasyUI完整项目例子

    Java和EasyUI是Web开发领域中的重要工具,本项目实例结合了两者,提供了一个完整的应用示例。在本文中,我们将深入探讨Java和EasyUI的相关知识点,并基于项目的实际内容进行详细解析。 首先,Java是一种广泛使用的...

    java导出excel树结构工具类

    该工具类实现java导出树形结构的方法,并未采用excel分组功能实现,而是根据树节点显示层级设置excel样式。针对easyUi,treeGrid开发的导出excel功能。方法简便实用、性强、通俗易懂。项目中亲测,no problem。

    easyui 树形结构样例

    在“easyui 树形结构样例”中,我们主要探讨的是如何使用EasyUI实现一个可操作的树形结构,特别是在下拉框中展示的数据结构。这种树形结构在很多业务场景中都很常见,如组织结构管理、文件目录浏览等。 首先,我们...

    java源码 EasyUI-2 后台框架(仅供参考) 2018127

    这个“java源码 EasyUI-2 后台框架”是一个基于 Java 和 EasyUI 的后台管理系统框架,主要用于展示如何将 EasyUI 与后端服务进行集成,实现数据的动态展示和交互。 首先,我们来了解一下 EasyUI 在后台开发中的应用...

    【精】Java EasyUi增删改查加分页 案例

    【Java EasyUi增删改查加分页案例】是一个适合初学者的实践项目,它涵盖了Web开发中的基础功能,包括添加、删除、修改和查询数据,并且整合了分页功能。EasyUI是一个基于jQuery的UI框架,它提供了丰富的组件,简化了...

    easyui结合后端Java实现项目开发中的各个需求功能

    EasyUI的树组件可以解析这些数据并生成相应的树结构。在后端,你可以使用Java的Jackson库来序列化对象为JSON,再通过HTTP响应返回给前端。 下拉框(Select)的动态加载也是常见的需求。例如,根据某个条件(如父...

    Java通用管理系统(easyui、 hibernate、 spring mvc、 spring、 maven、 mysql)

    1. **EasyUI**:这是一个基于jQuery的前端UI库,提供了丰富的组件,如表格、下拉框、树形结构、对话框等,便于快速构建用户界面。EasyUI简化了HTML和CSS的编写,使得开发者可以更专注于业务逻辑,而不是页面的样式...

    专题资料(2021-2022年)javaeasyui项目演练.docx

    【Java EasyUI 项目演练详解】 Java EasyUI 是一套基于 jQuery 的 UI 组件库,用于构建美观、响应式的 Web 应用程序。本专题资料主要针对2021-2022年的 Java EasyUI 项目演练,涵盖了从布局设计到数据库操作的全...

    一头扎进 easyui 视频教程 java1234出品 第2部分 共2部分

    一头扎进 easyui 视频教程 java1234出品 第2部分 共2部分

    easyui java系统

    在Java环境中,EasyUI 被广泛用于后端数据的展示和交互,尤其适用于构建管理系统。下面我们将详细探讨 EasyUI 在 Java 系统中的应用及其相关知识点。 1. **jQuery EasyUI 结构**: - EasyUI 是基于 jQuery 的,...

    java jquery easyUI例子

    Java、jQuery和EasyUI是Web开发中的重要工具,它们各自扮演着不同的角色,结合使用可以构建出高效且用户友好的界面。在这个压缩包文件中,包含的资源将帮助你理解和运用这三个技术。 EasyUI是一个基于jQuery的前端...

    java后台+easyui框架实现的所有demo

    3. **分页与排序**:EasyUI Grid支持分页和排序功能,后台Java需要根据前端传来的参数(如页码、每页大小、排序字段和方向)进行数据库查询,返回对应的分页数据。 4. **树形结构**:EasyUI的Tree组件可用于展示...

    java easyui中文培训文档.doc

    除此之外,Java EasyUI 还包含许多其他组件,如Grid(数据网格)、Tree(树形结构)、Panel(面板)等,它们都有各自的配置参数、事件和方法。通过深入学习这个中文培训文档,开发者可以掌握EasyUI的各种功能,并将...

    基于Java的JSP 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技术--实现增删改查功能

    在Java和EasyUI技术结合应用中,实现增删改查(CRUD)功能是Web开发中的基础且重要的环节。EasyUI是一个基于jQuery的UI库,提供了丰富的组件和样式,简化了前端界面的开发,而Java作为后端语言,通常与Spring、...

Global site tag (gtag.js) - Google Analytics