日期:2014-05-16  浏览次数:20420 次

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