treegrid 与java交互_针对dhtmlX当中的treegrid在java类当中的封装实现的步骤(后台代码)...
查看API实现的方式
了解其返回值的解析方式
使用Java类进行封装并且实现返回xml的String到前台
查看API的实现方式,dhtmlx的官方文档中
C
true
true
从xml文档中便可得知:
1.Rows 节点当中存放的是Row的节点 一对多的关系,同时属性parent表示的是Row节点id的属性表示的上下级的关系
2.Row节点当中有Userdata的属性 是一对多的关系,可以放入多个值来表示在列当中不能显示的一些值,例如当前行的ID
3.Row节点当中含有Cell节点,是一对多的关系 Cell表示的是每行当中的单元格
根据上面的分析,开始封装代码
Cell.java
1 /**
2 * @Title Cell.java3 * @Package4 *@author
5 * @date 2015-10-12 上午11:02:436 *@versionV1.07 */
8
9
10 /**
11 * @ClassName Cell12 *@author
13 * @date 2015-10-12 上午11:02:4314 */
15 public classCell {16 private String image = "";17 private String value = "";18
19 publicCell() {20 }21
22 publicCell(String value)23 {24 this.value =value;25 }26 publicCell(String value, String image) {27 this.image =image;28 this.value =value;29 }30
31 /**
32 *@returnthe image33 */
34 publicString getImage() {35 returnimage;36 }37
38 /**
39 * 设置图片路径40 *41 *@paramimage42 * the image to set43 */
44 public voidsetImage(String image) {45 this.image =image;46 }47
48 /**
49 * 获取cell当中的值50 *51 *@returnthe value52 */
53 publicString getValue() {54 returnvalue;55 }56
57 /**
58 * 设置cell当中的值59 *60 *@paramvalue61 * the value to set62 */
63 public voidsetValue(String value) {64 this.value =value;65 }66
67 /*(non-Javadoc)68 * @see java.lang.Object#toString()69 */
70 @Override71 publicString toString() {72 return "Cell [image=" + image + ", value=" + value + "]";73 }74
75 }
Cell.java
在Cell对象中,
private String image = "";
private String value = "";
image 表示的是image的名称,Value则是Cellvalue的值
UserData.java
1 /**
2 * @Title UserData.java3 * @Package4 *@author
5 * @date 2015-10-12 上午10:58:356 *@versionV1.07 */
8 package
9
10 /**
11 * @ClassName UserData12 *@author
13 * @date 2015-10-12 上午10:58:3514 */
15 public classUserData {16 private String Name = "";17 private String value = "";18
19 /**
20 *@paramname21 *@paramvalue22 */
23 publicUserData(String name, String value) {24 super();25 Name =name;26 this.value =value;27 }28
29 /**
30 *31 */
32 publicUserData() {33 super();34 this.Name = "";35 this.value="";36 }37
38 /**
39 * 获取属性name的值40 *@returnthe name41 */
42 publicString getName() {43 returnName;44 }45 /**
46 * 设置属性name的值47 *@paramname the name to set48 */
49 public voidsetName(String name) {50 Name =name;51 }52 /**
53 * 获取value的值 true54 * true55 *@returnthe value56 */
57 publicString getValue() {58 returnvalue;59 }60 /**
61 * 设置value的值 true62 * true63 *@paramvalue the value to set64 */
65 public voidsetValue(String value) {66 this.value =value;67 }68
69 /*(non-Javadoc)70 * @see java.lang.Object#toString()71 */
72 @Override73 publicString toString() {74 return "UserData [Name=" + Name + ", value=" + value + "]";75 }76
77
78 }
UserData.java
在UserData对象中,
private String Name = "";
private String value = "";
name表示的是属性的name的值,value则是value的值
1 /**
2 * @Title Row.java3 * @Package4 *@author
5 * @date 2015-10-12 上午11:06:346 *@versionV1.07 */
8
9 importjava.util.List;10
11 /**
12 * @ClassName Row13 *@author
14 * @date 2015-10-12 上午11:06:3415 */
16 public classRow {17 private Listcells ;18 private String id="";19 private String xmlkids="";20 /**
21 *@returnthe xmlkids22 */
23 publicString getXmlkids() {24 returnxmlkids;25 }26 /**
27 *@paramxmlkids the xmlkids to set28 */
29 public voidsetXmlkids(String xmlkids) {30 this.xmlkids =xmlkids;31 }32 /**
33 *@returnthe id34 */
35 publicString getId() {36 returnid;37 }38 /**
39 *@paramid the id to set40 */
41 public voidsetId(String id) {42 this.id =id;43 }44 private ListuserDatas;45 /**
46 *@returnthe userDatas47 */
48 public ListgetUserDatas() {49 returnuserDatas;50 }51 /**
52 *@paramuserDatas the userDatas to set53 */
54 public void setUserDatas(ListuserDatas) {55 this.userDatas =userDatas;56 }57 /**
58 *@returnthe cells59 */
60 public ListgetCells() {61 returncells;62 }63 /**
64 *@paramcells the cells to set65 */
66 public void setCells(Listcells) {67 this.cells =cells;68 }69 /*(non-Javadoc)70 * @see java.lang.Object#toString()71 */
72 @Override73 publicString toString() {74 return "Row [cells=" + cells + ", id=" + id + ", userDatas=" +userDatas75 + ", xmlkids=" + xmlkids + "]";76 }77
78 }
Row.java
private List cells ;
private String id="";
private String xmlkids="";
该行对象当中存放的是cells,也就是单个单元格,id表示当前行的id,xmlkids表示是否有子节点,1表示有子节点
Rows.java
1 /**
2 * @Title Rows.java3 * @Package4 *@author
5 * @date 2015-10-12 上午11:09:476 *@versionV1.07 */
8
9
10 importjava.util.List;11
12 /**
13 * @ClassName Rows14 *@author
15 * @date 2015-10-12 上午11:09:4716 */
17 public classRows {18 /**
19 *@returnthe rows20 */
21 private Listrows;22 private String parent="";23 public ListgetRows() {24 returnrows;25 }26 /**
27 *@paramrows the rows to set28 */
29 public void setRows(Listrows) {30 this.rows =rows;31 }32 /**
33 *@returnthe parent34 */
35 publicString getParent() {36 returnparent;37 }38 /**
39 *@paramparent the parent to set40 */
41 public voidsetParent(String parent) {42 this.parent =parent;43 }44 /*(non-Javadoc)45 * @see java.lang.Object#toString()46 */
47 @Override48 publicString toString() {49 return "Rows [parent=" + parent + ", rows=" + rows + "]";50 }51
52
53 }
Rows.java
private List rows;
private String parent="";
多行对象当中存放的是List对象,表示的是存放的是多行,parent表示的是父节点的ID,和row当中的id相关
TreeGrid.java
1 /**
2 * @Title TreeGrid.java3 * @Package4 *@author
5 * @date 2015-10-12 上午11:16:586 *@versionV1.07 */
8
9
10
11 importjava.util.ArrayList;12 importjava.util.List;13
14 importorg.slf4j.Logger;15 importorg.slf4j.LoggerFactory;16
17
18 /**
19 * @ClassName TreeGrid20 *@author
21 * @date 2015-10-12 上午11:16:5822 */
23 public classTreeGrid {24 private String xmlHeader =XMLUtils.getXmlHeader();25 private Logger logger = LoggerFactory.getLogger(this.getClass());26
27 /**
28 *@returnthe xmlHeader29 */
30 publicString getXmlHeader() {31 returnxmlHeader;32 }33
34 /**
35 *@paramxmlHeader36 * the xmlHeader to set37 */
38 public voidsetXmlHeader(String xmlHeader) {39 this.xmlHeader =xmlHeader;40 }41
42 /**
43 * 转换成xml文件输出44 *45 *@paramrows46 *@returnString47 *@author
48 * @date 2015-10-12 上午11:21:1849 */
50 publicString asXml(Rows rows) {51 StringBuffer stringBuffer = newStringBuffer();52 stringBuffer.append(this.xmlHeader);53 stringBuffer.append("
55 String parent =rows.getParent();56 if (!"".equals(parent) && rows.getParent() != null) {57 stringBuffer.append(" parent=");58 stringBuffer.append("'");59 stringBuffer.append(rows.getParent());60 stringBuffer.append("'");61 stringBuffer.append(">");62 } else{63 stringBuffer.append(">");64 }65 //遍历rows 也就是拼接row
66 if (rows.getRows() != null) {67 for (int i = 0; i < rows.getRows().size(); i++) {68 //遍历cells 拼接cell,userDate
69 Row cells =rows.getRows().get(i);70 //拼接cell
71 stringBuffer.append(this.appendCells( cells));72 }73 }else
74 {75 stringBuffer.append(">");76 }77 //最后拼接上
78 stringBuffer.append("
");79 logger.debug("ROWS");80 logger.debug(stringBuffer.toString());81 returnstringBuffer.toString();82 }83
84 /**
85 * 拼接cells86 *@paramstringBuffer87 *@paramcells88 *@returnStringBuffer89 *@author
90 * @date 2015-10-12 下午01:58:5591 */
92 privateStringBuffer appendCells(Row cells)93 {94 //拼接cell
95 StringBuffer stringBuffer = newStringBuffer();96 stringBuffer.append("
98 if(!"".equals(cells.getXmlkids())&&cells.getXmlkids()!=null)99 {100 stringBuffer.append(" xmlkids=");101 stringBuffer.append("'");102 stringBuffer.append(cells.getXmlkids());103 stringBuffer.append("'");104 }105 //拼装属性id
106 if(!"".equals(cells.getId())&&cells.getId()!=null)107 {108 stringBuffer.append(" id=");109 stringBuffer.append("'");110 stringBuffer.append(cells.getId());111 stringBuffer.append("'");112 stringBuffer.append(">");113 }else
114 {115 stringBuffer.append(">");116 }117 for (int c = 0; c < cells.getCells().size(); c++) {118 //拼接cells
119 stringBuffer.append("");127 } else{128 stringBuffer.append(">");129 }130 stringBuffer.append("");133 stringBuffer.append("");134 }135 //拼接userdata
136 stringBuffer.append(this.appendUserData(cells));137 stringBuffer.append("
");138 logger.debug("CELLS");139 logger.debug(stringBuffer.toString());140 returnstringBuffer;141 }142
143 /**
144 * 拼接userData145 *@paramstringBuffer146 *@paramcells147 *@returnStringBuffer148 *@author
149 * @date 2015-10-12 下午01:59:07150 */
151 privateStringBuffer appendUserData(Row cells)152 {153 //拼接userDate
154 StringBuffer stringBuffer = newStringBuffer();155 if (cells.getUserDatas()!=null&&!cells.getUserDatas().isEmpty()) {156 for (int i = 0; i < cells.getUserDatas().size(); i++) {157 stringBuffer.append("");163 stringBuffer.append(cells.getUserDatas().get(i).getValue());164 stringBuffer.append("");165 }166 }167 logger.debug("USERDATA");168 logger.debug(stringBuffer.toString());169 returnstringBuffer;170 }171
172 /**
173 *174 *@paramargs void175 *@author
176 * @date 2015-10-12 下午03:40:46177 */
178 public static voidmain(String[] args) {179
180 /*
181 * <?xml version='1.0' encoding='utf-8'?>182 183 184 OLT设备185 186 187 188 189 190 */
191
192
193 /*
194 * <?xml version='1.0' encoding='utf-8'?>195 196 197 机框198 199 200 201 true202 203 204 */
205
206 TreeGrid treeGrid = newTreeGrid();207 Rows rows = newRows();208 rows.setParent("000125103260000300084800");209 List rowss = new ArrayList();210 Row e = newRow();211 e.setId("000125103260000300084800");212 UserData userdate = newUserData();213 userdate.setName("canRefresh");214 userdate.setValue("true");215 List listUserData = new ArrayList();216 listUserData.add(userdate);217 e.setUserDatas(listUserData);218 List cells = new ArrayList();219 Cell cell1 = newCell();220 cell1.setImage("o.gif");221 cell1.setValue("01");222 Cell cell2 = newCell();223 cell2.setImage("o.gif");224 cell2.setValue("机框");225 cells.add(cell2);226 cells.add(cell1);227 e.setCells(cells);228 rowss.add(e);229 rows.setRows(rowss);230 System.out.println(treeGrid.asXml(rows));231 }232 }
TreeGrid.java
private String xmlHeader = XMLUtils.getXmlHeader(); 表示的xml的头部信息
方法public String asXml(Rows rows)用来将组装好的数据展现出来,只要符合了API当中的组成方式,那么就可以在前台展示了。
treegrid 与java交互_针对dhtmlX当中的treegrid在java类当中的封装实现的步骤(后台代码)...相关推荐
- aws搭建java项目_开发人员指南 - AWS SDK for Java 1.x - 适用于 Java 的 AWS 开发工具包...
本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. 开发人员指南 - AWS SDK for Java 1.x 适用于 Java 的 AWS 开发工具包为 Amazon We ...
- 面试问到java并发_那些面试官必问的JAVA多线程和并发面试题及回答
Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环 ...
- java 分析java死锁_有益的CountDownLatch和棘手的Java死锁
java 分析java死锁 您是否曾经使用过java.util.concurrent.CountDownLatch ? 这是在两个或多个线程之间实现同步的非常方便的类,在该类中,一个或多个线程可以等待 ...
- aix系统java堆_浅谈AIX环境下的Java性能调优
1.什么是Java Java 是一种面向对象的编程语言.它以 C++ 为模型,被设计成小的.简单的.在源和二进制级别跨平台的可移植的语言,Java 程序(applets 和应用程序)可以运行于任何已经 ...
- 安装java环境_(一)环境安装之Java
安装java 点击 JDK8下载,根据自己的平台,选择相应的版本进行下载. 小知识: Java环境分JDK和JRE ,JDK就是Java Development Kit.简单的说JDK是面向开发人员使 ...
- cmd编译java命令_使用CMD命令编译和运行Java程序
对于初学者来说,使用CMD命令(Unix以及类Unix系统采用Termial)来编译和运行Java的好处是让初学者直观地体会到编译(Compile)这一步骤,加深记忆.所谓编译就是将文本文件xxx.j ...
- Java并发包中那些值得学习的并发工具类(空谈误国,实干兴邦,代码示范,抛砖引玉)
首先我们通常说的并发包就是java.util.concurrent包及其子包.集中了Java并发的各种基础工具类. 一.这个并发包在哪 上面的包就是传说中的并发包. 为什么这个并发包就比较流弊呢? 原 ...
- 社交媒体平台api接口功能_针对社交媒体API的新Java规范请求
社交媒体平台api接口功能 针对Java 7的最新Java规范请求已经浮出水面,提出了一种用于访问私有和公共社交信息网络的API,范围从Facebook和Twitter到企业和机构内的网络. 社交媒体 ...
- as3 java 交互_求大佬用 Java 实现这段 AS3 的 socket 通讯功能
最近在分析一个直播网站,初步分析后发现是在 swf 中用 socket 通讯返回的 flv 地址. 其中 Actionscript socket 通讯的关键代码如下: this._socket = n ...
最新文章
- Ubuntu系统查看文件夹目录
- 一、cocos2dx之如何优化内存使用(高级篇)
- [算法]最小生成树-普利姆算法
- [转]JAVA泛型通配符T,E,K,V区别,T以及ClassT,Class?的区别
- python字符串和字典
- 一个老鸟发的公司内部整理的 Android 学习路线图 Markdown 版本
- H3C TFTP操作示例
- @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 注解的作用
- Android Studio(10)---使用 Layout Editor 构建 UI
- Python3 练习笔记一
- Ubuntu下部署SVN+SVNManager
- OpenCV_连通区域分析(Connected Component Analysis-Labeling)
- Hive 性能调优大全
- NBOJ 1181 Big Mouth of Abyss - Kog'Maw
- HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞|type c 扩展坞接口功能说明
- 关于oem7grub 0.4.4 2009-11-18,memory:639k/30 的问题的解决
- john lim php,成都环球中心天堂洲际大饭店总经理Mr.John Lim:E-Con系统开启智慧服务新时代!...
- 视频教程-从零开始学BGP--【适用于思科CCNA、CCNP入门】-路由协议
- 机器学习 标称型和数值型目标变量
- js逆向爬虫入门-02.STEAM平台模拟登录逆向