查看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类当中的封装实现的步骤(后台代码)...相关推荐

  1. aws搭建java项目_开发人员指南 - AWS SDK for Java 1.x - 适用于 Java 的 AWS 开发工具包...

    本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. 开发人员指南 - AWS SDK for Java 1.x 适用于 Java 的 AWS 开发工具包为 Amazon We ...

  2. 面试问到java并发_那些面试官必问的JAVA多线程和并发面试题及回答

    Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环 ...

  3. java 分析java死锁_有益的CountDownLatch和棘手的Java死锁

    java 分析java死锁 您是否曾经使用过java.util.concurrent.CountDownLatch ? 这是在两个或多个线程之间实现同步的非常方便的类,在该类中,一个或多个线程可以等待 ...

  4. aix系统java堆_浅谈AIX环境下的Java性能调优

    1.什么是Java Java 是一种面向对象的编程语言.它以 C++ 为模型,被设计成小的.简单的.在源和二进制级别跨平台的可移植的语言,Java 程序(applets 和应用程序)可以运行于任何已经 ...

  5. 安装java环境_(一)环境安装之Java

    安装java 点击 JDK8下载,根据自己的平台,选择相应的版本进行下载. 小知识: Java环境分JDK和JRE ,JDK就是Java Development Kit.简单的说JDK是面向开发人员使 ...

  6. cmd编译java命令_使用CMD命令编译和运行Java程序

    对于初学者来说,使用CMD命令(Unix以及类Unix系统采用Termial)来编译和运行Java的好处是让初学者直观地体会到编译(Compile)这一步骤,加深记忆.所谓编译就是将文本文件xxx.j ...

  7. Java并发包中那些值得学习的并发工具类(空谈误国,实干兴邦,代码示范,抛砖引玉)

    首先我们通常说的并发包就是java.util.concurrent包及其子包.集中了Java并发的各种基础工具类. 一.这个并发包在哪 上面的包就是传说中的并发包. 为什么这个并发包就比较流弊呢? 原 ...

  8. 社交媒体平台api接口功能_针对社交媒体API的新Java规范请求

    社交媒体平台api接口功能 针对Java 7的最新Java规范请求已经浮出水面,提出了一种用于访问私有和公共社交信息网络的API,范围从Facebook和Twitter到企业和机构内的网络. 社交媒体 ...

  9. as3 java 交互_求大佬用 Java 实现这段 AS3 的 socket 通讯功能

    最近在分析一个直播网站,初步分析后发现是在 swf 中用 socket 通讯返回的 flv 地址. 其中 Actionscript socket 通讯的关键代码如下: this._socket = n ...

最新文章

  1. Ubuntu系统查看文件夹目录
  2. 一、cocos2dx之如何优化内存使用(高级篇)
  3. [算法]最小生成树-普利姆算法
  4. [转]JAVA泛型通配符T,E,K,V区别,T以及ClassT,Class?的区别
  5. python字符串和字典
  6. 一个老鸟发的公司内部整理的 Android 学习路线图 Markdown 版本
  7. H3C TFTP操作示例
  8. @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 注解的作用
  9. Android Studio(10)---使用 Layout Editor 构建 UI
  10. Python3 练习笔记一
  11. Ubuntu下部署SVN+SVNManager
  12. OpenCV_连通区域分析(Connected Component Analysis-Labeling)
  13. Hive 性能调优大全
  14. NBOJ 1181 Big Mouth of Abyss - Kog'Maw
  15. HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞|type c 扩展坞接口功能说明
  16. 关于oem7grub 0.4.4 2009-11-18,memory:639k/30 的问题的解决
  17. john lim php,成都环球中心天堂洲际大饭店总经理Mr.John Lim:E-Con系统开启智慧服务新时代!...
  18. 视频教程-从零开始学BGP--【适用于思科CCNA、CCNP入门】-路由协议
  19. 机器学习 标称型和数值型目标变量
  20. js逆向爬虫入门-02.STEAM平台模拟登录逆向

热门文章

  1. 新观影神器(安卓、iOS端)
  2. PX4使用P900数传
  3. android gps 轨迹记录仪,GPS行车轨迹不能代替行车记录仪使用
  4. 夏休回国游记--安阳
  5. Window平台下的静默下载并安装软件脚本bat
  6. 关于 iOS 开发者账号
  7. iOS 项目开发总览,开发者账号
  8. 软考初级程序员上午单选题(19)
  9. 网络生命大百科全书项目
  10. 《乐队的夏天》很酷?程序员式的摇滚才燃爆了!