本人用的是blazeds进行flex与java通信的,昨天研究了一天的树绑定,有用arraycollection来绑定,但这需要java端arraylist的时候每一个子节点必须加一个children,感觉很繁琐,还有就是直接在java端生成xml字符串,传至flex端进行强制转换成xml与tree绑定。前奏就不必多说,直奔主题:
首先介绍本人数据表的设计,
name,level
成都 1
武侯区 1.1
青羊区 1.2
锦江区 1.3
金牛区 1.4
成华区 1.5
上东锦城 1.3.1这样设计表结构的目的就是为了一次性查询出树的所有节点信息,且排序直接生成树
java代码:
StringBuffer sb = new StringBuffer();
int i = -1;
try {
//查找该节点下所有子节点
List<Contactgroup> list = contactgroupDao.findByHql(ContactgroupDao.FIND_BY_LEVEL, level + "%");
for(Contactgroup group : list) {
int j = group.getLevel().split("\\.").length;
if( j > i){
sb.append("<item name=\""+group.getGngName()+"\" value=\""+group.getLevel()+"\">\n");
}else{
for(int k = -1;k < i - j;k++){
sb.append("</item>\n");
}
sb.append("<item name=\""+group.getGngName()+"\" value=\""+group.getLevel()+"\">\n");
}
i = j;
}
//最后一个j为0
for(int m = 0;m < i;m++){
sb.append("</item>\n");
}
} catch (Exception e) {
e.printStackTrace();
}
return sb.toString();
里面的循环我相信程序猿都能看懂吧!
我查询按照level来排序,查询结果:
name, level
成都 1
武侯区 1.1
青羊区 1.2
锦江区 1.3
上东锦城 1.3.1
金牛区 1.4
成华区 1.5
这样以来一目了然了吧,直接按顺序生成树!
flex端:
<mx:Script>
<![CDATA[
public function loadTree():void{
this.contactAction.findSubgroup("1");
}
public function findSubgroupResult(e:ResultEvent):void{
var arr:XMLList=XMLList(e.result);//把结果转化成XMLList
this.tree.dataProvider=arr;
}
//展开树
private function tree_itemClick(evt:ListEvent):void {
var item:Object = Tree(evt.currentTarget).selectedItem;
if (tree.dataDescriptor.isBranch(item)) {
tree.expandItem(item, !tree.isItemOpen(item), true);
}
Alert.show(item.@value);
}
]]>
</mx:Script>
<mx:Tree id="tree"
itemClick="tree_itemClick(event);"
labelField="@name"
labelFunction="tree_labelFunc"
creationComplete="loadTree()"
top="30" bottom="0" left="0" width="142"
backgroundColor="#FDFDFD" />
欢迎大家来探讨更好的算法!本人邮箱[email]136006280@qq.com[/email]
分享到:
相关推荐
用数据动态绑定XML,然后实现flex中树的绑定
java解析xml动态生成树形菜单结构 可以满足无限层的树形菜单,该工程的所有代码,都有详细的实例。 以及js控制树形菜单的伸展和收缩,以及全选
xml java 绑定xml java 绑定xml java 绑定
Java与XML数据绑定 Java与XML数据绑定 Java与XML数据绑定
flex中经常需要xml格式的文件。通过后台asp.net的处理可以将数据库中读取的文件转化为xml格式。这是再传递给前端的flex中的tree控件作为数据源。
java 通过模板生成 xml,发送报文
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
java在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava...
flex xml 生成 tree 的详细源码 。还有解说
java 查询数据库并生成XML的类java 查询数据库并生成XML的类java 查询数据库并生成XML的类java 查询数据库并生成XML的类java 查询数据库并生成XML的类
java代码读取xml文件,生成树形图。这里是源码,可直接使用,是我项目中提取生成树的核心文件。
使用java把数据库数据导出生成xml文件 使用java把数据库数据导出生成xml文件
java日期和查询数据库生成XML文件类,日期是弹出的日期表,XML是直接写数据库的表生成相应的XML文件,想要自己的格式可以改改就行了。
JAVA中生成xml文件到指定路径和上传到ftp服务器到指定路径的方法。
Flex、Java 、Tree代码 使用XMLList生成xml文件
里面收集了一些Flex的tree控件的用法和实例的源代码
完美可以把任何xml,解析成一个tree,是用js完美呈现
这个小例子是使用Java作为服务端、Flex做前台,对一个xml文件的读取和写入。 环境:MyEclipse6.0.1+Flex3插件版,jdk1.6,tomcat6.0,dom4j1.6.1,lcds.war, 使用技术:1.Java+flex,及其对象的转换。 2.Java方面...
JAVA和XML数据绑定 经典PDF
Java XML绑定架构(JAXB)提供了一个绑定编译器,xjc,来从一个XML模式中生成Java类。用JAXB的xjc生成的Java类代表了在XML模式中不同的元素和复杂类型(complexType)。(一个复杂类型通过指定属性和元素内的元素来提供对...