一次数据库查询,封装成树型结构数据 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框架,通过写上去了语句快速查询返回所需要的数据,写出接口,包含分页查询,可以使用多数据元等
java easyui中文培训文档
easyui+ssh(增删改模糊查询,导出数据),里面已经加了注解需要的可以自行下载学习。
easyui即时消息框实例
自己编写的详细EasyUI实例项目,和详细备注,可直接运行
采用easyui datagrid实现后台Springmvc分页查询的maven工程,下载吧, 你不得后悔,jquery-easyui-1.5.2
一头扎进 easyui 视频教程 java1234出品 第2部分 共2部分
java源码 EasyUI-2 后台框架(仅供参考) .
Java通用管理系统(easyui、 hibernate、 spring mvc、 spring、 maven、 mysql)
结合Java实现easyui中各个功能的具体实现,其中代码包括数据库代码(功能主要有:可编辑列表,树形图,下拉框,弹出层都是动态的后端实现等功能)
easyui 树形结构样例,下拉框里面是easyui树,循环展示
专题资料(2021-2022年)javaeasyui项目演练.docx
JAVA实现EASYUI树形表格(TreeGrid)代码,gradle项目,内含gradle文件夹和mysql数据库文件,解压后导入mysql数据库,文件夹导入eclipse即可使用。首次使用请更新gradle项目下载JAR包,不然报错。
asp.net mvc4 easyui CRUD 分页 查询,参见博文http://blog.csdn.net/yjjhk/article/details/42008815
easyui中selec模糊查询用到的js和css文件,样式命名需要自己更改
java方法实现easyui得到树的json
包括大部分easyui源码,可以全面了解到jquery easyui在java当中的使用方法
这里面我把EasyUI官方API中文文档,Jquery中文帮助文档,都打包进来了。很容易看懂,用的myeclipse+Oracle数据库,大家也可不使用Oracle,里面有表结构复制出来即可
EASYUI开发项目实力,可运行,可供参考。
easyui 增删改查功能实现