jstree后台和前台


踩 jstree的简单应用 如果有开发中用的朋友可以交流一下~~
参见 http://www.jstree.com/

标签: jstree 代码片段(1)
[代码] [JavaScript]代码
view sourceprint?
001 jstree主要是看后台如何组织数据

002

003 java类:

004

005 public class TreeAction extends BaseAction implements IAuthIdGetter, IOperationLog {

006

007 /**

008 * 序列号

009 */

010 private static final long serialVersionUID = 1L;

011

012 /**

013 * 数据list

014 */

015 private List<TreeDomain> treeList = new ArrayList<TreeDomain>();

016

017 /**

018 * 日志相关

019 */

020 private static LogService logger = LogService.getLogger(OneCMDBTreeAction.class);

021

022 /**

023 * 获取展示树

024 * @return String

025 */

026 public String showTree() {

027 logger.info(getText("function.title") + getText("log.showTree.begin"));

028 this.parseXml();

029 logger.info(getText("function.title") + getText("log.showTree.end"));

030 return SUCCESS;

031 }

032

033 /**

034 * @return

035 */

036 public void parseXml() {

037 try {

038 CMDBUtil cmdb = new CMDBUtil();

039 // 创建DOM工厂

040 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

041 DocumentBuilder db = dbf.newDocumentBuilder();

042 String treeXml = cmdb.getXML();// getXML();

043 logger.info(treeXml);

044 byte source[] = treeXml.getBytes("UTF-8");

045 InputStream is = new ByteArrayInputStream(source);

046 Document document = db.parse(is);

047 // 显示的节点id

048 String alias = "";

049 // 树节点要展示的名称

050 String displayName = "";

051 // 获取所有名称为template的节点

052 NodeList nodeIdList = document.getElementsByTagName("template");

053 for (int i = 0; i < nodeIdList.getLength(); i++) {

054 Node node = nodeIdList.item(i);

055 // 获取节点要显示的id

056 alias = node.getAttributes().getNamedItem("alias").getNodeValue();

057 displayName = node.getAttributes().getNamedItem("displayName").getNodeValue();

058 if ("Ci".equals(alias)) {

059 TreeDomain domain = new TreeDomain();

060 domain.setDisplayName(displayName);

061 domain.setShowId(alias);

062 domain.setParentId("0");

063 treeList.add(domain);

064 //调用递归算法

065 findList(alias, nodeIdList);

066 }

067 }

068 } catch (Exception e) {

069 // TODO Auto-generated catch block

070 logger.info("parseXml error :" + e);

071 }

072 }

073

074 /**

075 * 递归获取Ci节点下的所有子节点

076 * @param id "Ci"

077 * @param nodeIdList

078 */

079 public void findList(String id, NodeList nodeIdList) {

080 for (int i = 0; i < nodeIdList.getLength(); i++) {

081 Node node = nodeIdList.item(i);

082 Node derivedNode = node.getFirstChild().getNextSibling();

083 if ("derivedFrom".equals(derivedNode.getNodeName())) {

084 // 当前node的id

085 String alias = node.getAttributes().getNamedItem("alias").getNodeValue();

086 // 当前node的显示名称

087 String displayName = node.getAttributes().getNamedItem("displayName")

088 .getNodeValue();

089 Node refNode = derivedNode.getFirstChild().getNextSibling();

090 if (refNode.getAttributes().getNamedItem("alias") != null) {

091 String pid = refNode.getAttributes().getNamedItem("alias").getNodeValue();

092 if (id.equals(pid)) {

093 TreeDomain domain = new TreeDomain();

094 domain.setDisplayName(displayName);

095 domain.setShowId(alias);

096 domain.setParentId(pid);

097 treeList.add(domain);

098 findList(alias, nodeIdList);

099 }// end if id

100 }// end if refNode

101 }// end if

102 }// end for i

103 }

104

105 /**

106 * 读取树的内容

107 * @return

108 */

109 public String getXML() {

110 String xml = "";

111 ByteArrayOutputStream out = new ByteArrayOutputStream();

112 InputStream is = null;

113 try {

114 is = new FileInputStream("C:\\cloud\\template.xml");

115 byte[] b = new byte[1024];

116 int n;

117 while ((n = is.read(b)) != -1) {

118 out.write(b, 0, n);

119 }// end while

120 byte treebyte[] = out.toByteArray();

121 String str = new String(treebyte, "UTF-8");

122 xml = str;

123 // logger.info(xml);

124 } catch (Exception e) {

125 // TODO Auto-generated catch block

126 e.printStackTrace();

127 } finally {

128 if (is != null) {

129 try {

130 is.close();

131 } catch (Exception e) {

132 // log.error(e);// TODO

133 }// end try

134 }// end if

135 if (out != null) {

136 try {

137 out.close();

138 } catch (Exception e) {

139 // log.error(e);// TODO

140 }// end try

141 }// end if

142 }

143 return xml;

144 }

145

146 @Override

147 public String getOpType() {

148 // TODO Auto-generated method stub

149 return null;

150 }

151

152 @Override

153 public String getOperationFunction() {

154 // TODO Auto-generated method stub

155 return null;

156 }

157

158 @Override

159 public String getOperationInfo() {

160 // TODO Auto-generated method stub

161 return null;

162 }

163

164 public List<TreeDomain> getTreeList() {

165 return treeList;

166 }

167

168 public void setTreeList(List<TreeDomain> treeList) {

169 this.treeList = treeList;

170 }

171 }

172

173 <script type="text/JavaScript">

174 <!--

175 var iconCss = "background: url(././././themes/default/images/ico_file.png;) no-repeat scroll center center transparent;";

176 var iconUrl = "././././themes/default/images/ico_file.png ";

177 $(function(){

178 $("#resourceTree").jstree({

179 "xml_data" : {

180 "ajax" : {

181 "url" : "showTree.action"

182 },

183 "xsl" : "flat"

184 },

185 "ui" : {

186 "initially_select" : [ "NJCMP_Pm_info_tab" ]

187 },

188 "plugins" : [ "themes", "xml_data","ui"]

189 })

190 .bind("open_node.jstree",function (e,data){

191 var data = $(data.rslt.obj);

192 var $parentUL = $("ul",data);

193 var $content = $("ul",$parentUL);

194 if($content.html() == null ){

195 $("a",$parentUL).attr("icon",iconUrl);

196 $("ins:odd",$parentUL).attr("style",iconCss);

197 }

198 })

199 .bind("select_node.jstree", function (event, data){

200 var id = data.rslt.obj.attr("id");

201 var data = $(data.rslt.obj);

202 var $parentUL = $("ul",data);

203 var $content = $("ul",$parentUL);

204 if($content.html() == null ){

205 url = "<%=request.getContextPath()%>/getbase.action?CIName=" + id;

206 $("#framezc").attr("src",url);

207 }

208 })

209 .bind("loaded.jstree", function (e, data){

210 $("#resourceTree").css("background-color","#f4f6f8");

211 $("#resourceTree").css("overflow","auto");

212 $("#resourceTree").css("height","700px");

213 $("#resourceTree").jstree("toggle_node","#NJCMP_PM");

214 url = "<%=request.getContextPath()%>/getbase.action?CIName='NJCMP_Pm_info_tab'";

215 $("#framezc").attr("src",url);

216 });

217 });

218 //-->

219 </script>

220

221 <div id="resourceTree"></div>
de]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值