http://emlyn1180.iteye.com/blog/315334
-
public class Node {
-
private int id;
-
private int parentId;
- Node(){}
-
Node(int id,int parentId){
-
this.id=id;
-
this.parentId = parentId;
- }
-
public int getId() {
-
return id;
- }
-
public void setId(int id) {
-
this.id = id;
- }
-
public int getParentId() {
-
return parentId;
- }
-
public void setParentId(int parentId) {
-
this.parentId = parentId;
- }
- }
- import java.util.ArrayList;
-
import java.util.Iterator;
-
import java.util.List;
-
-
-
public class Recursion {
-
List nodeList =new ArrayList();
-
Recursion(){
-
Node node1 = new Node(1,0);
-
Node node2 = new Node(2,1);
-
Node node3 = new Node(3,1);
-
Node node4 = new Node(4,2);
-
Node node5 = new Node(5,2);
-
Node node6 = new Node(6,2);
-
Node node7 = new Node(7,6);
-
Node node8 = new Node(8,6);
-
- nodeList.add(node1);
- nodeList.add(node2);
- nodeList.add(node3);
- nodeList.add(node4);
- nodeList.add(node5);
- nodeList.add(node6);
- nodeList.add(node7);
- nodeList.add(node8);
- }
-
StringBuffer returnStr=new StringBuffer();
-
public void recursionFn(List list , Node node){
-
if(hasChild(list,node)){
-
returnStr.append("{id:");
- returnStr.append(node.getId());
-
returnStr.append(",parentId:");
- returnStr.append(node.getParentId());
-
returnStr.append(",children:[");
- List childList = getChildList(list,node);
- Iterator it = childList.iterator();
-
while(it.hasNext()){
- Node n = (Node)it.next();
- recursionFn(list,n);
- }
-
returnStr.append("]},");
-
}else{
-
returnStr.append("{id:");
- returnStr.append(node.getId());
-
returnStr.append(",parentId:");
- returnStr.append(node.getParentId());
-
returnStr.append(",leaf:true},");
- }
-
- }
-
public boolean hasChild(List list, Node node){
-
return getChildList(list,node).size()>0?true:false;
- }
-
public List getChildList(List list , Node node){
-
List li = new ArrayList();
- Iterator it = list.iterator();
-
while(it.hasNext()){
- Node n = (Node)it.next();
-
if(n.getParentId()==node.getId()){
- li.add(n);
- }
- }
-
return li;
- }
-
public String modifyStr(String returnStr){
-
return ("["+returnStr+"]").replaceAll(",]", "]");
-
- }
-
public static void main(String[] args) {
-
Recursion r = new Recursion();
-
r.recursionFn(r.nodeList, new Node(1,0));
- System.out.println(r.modifyStr(r.returnStr.toString()));
- }
- }
分享到:
相关推荐
"Extjs 无限树菜单 后台拼接json"这个主题涉及到如何在后端生成无限级别的树形菜单数据,并通过JSON格式传输到前端进行渲染。 首先,我们要理解树形菜单的基本概念。树形菜单是一种以节点和层级关系展示数据的控件...
一个运用Extjs,Struts2, json,iterator技术构建的iterator_jsonDemo2。iterator_jsonDemo1的链接:http://download.csdn.net/detail/cafebar123/8816409 运用了Extjs,Struts2, json,iterator技术, 将数据从...
ExtJs + Struts2 + JSON 是一种常见的前端与后端数据交互的技术组合,常用于构建富客户端应用。这里我们详细探讨一下这三个技术组件以及它们如何协同工作。 首先,ExtJs 是一个JavaScript库,用于创建复杂的、用户...
这里我们将深入探讨如何使用ExtJS调用Java的JSON服务,从而实现前后端的数据交互。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 **ExtJS简介** ...
使用ExtJs获取后台json格式的数据必须的七个jar包,commons-beanuti-1s-1.7.0.jar,commons-collections-3.1.jar,commons-lang-2.5.jar,commons-logging-1.0.4.jar,ezmorph-1.0.4.jar,json-lib-2.1.jar,...
在本文中,我们将深入探讨"Extjs Json树封装"这一主题,包括如何使用JSON数据加载树形结构,以及涉及到的相关工具和源码。 首先,我们需要理解JSON树的概念。在ExtJS中,一个JSON树是由多个JSON对象组成的,每个...
在Servlet中,我们可以将Java对象转换为JSON字符串,然后在响应中设置Content-Type为"application/json",这样ExtJS就能识别并解析这个响应。 在页面展示方面,ExtJS提供了多种组件,如表格(Grid)、面板(Panel)...
`Struts2`可以通过其内置的JSON插件方便地将Java对象转换为JSON格式,然后发送给`ExtJS`,后者可以解析JSON数据并更新UI组件。 在这个例子中,开发者可能创建了一个`Struts2` Action,该Action处理来自`ExtJS`的...
标题 "extjs4 + servlet + json + soundmanager2 实现定时刷新报警" 涉及的是一个基于Web的实时报警系统开发技术,其中包含了多个关键组件和技术。让我们逐一深入探讨这些知识点。 1. **EXTJS4**:EXTJS是一个用...
在EXTJS中,树形控件(Tree)是一种常见的数据展示方式,用于组织层次结构的数据。树形控件可以被广泛应用于文件系统、组织架构、菜单等场景。当我们需要在这些大量的层次数据中查找特定信息时,搜索功能就显得尤为...
在使用ExtJS处理JSON数据时,通常需要依赖一些特定的Java档案(JAR)库,这些库提供了与JSON相关的解析和序列化功能。"extjs json所需jar包"指的是支持ExtJS与JSON交互的Java类库。 JSON(JavaScript Object ...
ExtJS是一个强大的JavaScript库,用于构建富客户端Web应用程序,而Struts是Java Web开发中的一个MVC(模型-视图-控制器)框架。这篇文章可能涵盖了以下知识点: 1. **ExtJS Grid Panel**: - ExtJS中的Grid Panel...
总结起来,这篇文章介绍了一种使用SSH、ExtJS和JSON实现动态树搜索的高效方法。它避免了全树展开的低效,通过路径查找提高了性能,同时通过ExtJS的事件处理和前端-后端通信实现了良好的用户体验。
在本文中,我们将深入探讨如何使用ExtJS框架的Tree组件,结合JSON数据格式以及Struts 2框架,来实现Ajax动态加载树形结构的节点。这是一项常见的需求,特别是在构建可扩展、用户友好的Web应用时,动态加载的树结构...
这个实例演示了如何将前端的JavaScript框架ExtJS与后端的Java MVC框架Struts2结合,通过JSON进行数据交换实现用户登录功能。下面将详细介绍各个组成部分。 首先,Ext JS 2.2是用于构建富客户端应用的JavaScript库,...
在"ExtJs树例子"这个主题中,我们主要关注的是ExtJS如何实现树形控件(Tree Panel)。 树形控件在Web应用中广泛用于展示层次结构的数据,比如文件系统、组织架构或菜单导航。ExtJS提供了一个完善的TreePanel组件来...
extjs异步树,多选树,json数据机构,集成spring,struts例子,extjs异步树,多选树,json数据机构,集成spring,struts例子,extjs异步树,多选树,json数据机构,集成spring,struts例子,extjs异步树,多选树,json...
ExtJS AJAX Tree是一种基于JavaScript的动态树形结构,它利用AJAX技术来异步加载节点数据,无需在服务器端生成完整的树结构。这种方式可以显著提高页面加载速度,尤其是在处理大量数据时。ExtJS是一个功能丰富的...
Struts2、Hibernate、Spring 和 ExtJS 是Java Web开发中常用的技术栈,它们共同构建了高效、可维护的Web应用程序。这个压缩包“struts2-hibernate-spring-Extjs-json.rar”显然包含了关于这些技术整合使用的参考资料...
在"Extjs Grid+asp.net+json Demo"中,我们将探讨如何结合ExtJS Grid、ASP.NET以及JSON来实现一个数据展示和交互的示例。 首先,让我们理解每个组成部分的作用: 1. **ExtJS Grid**:这是一个客户端的组件,它使用...