读书人

jstree靠山和前台

发布时间: 2012-07-26 12:01:08 作者: rapoo

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             // 创—OM工厂  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]

读书人网 >JavaScript

热点推荐