初搞EXT 参考API 和朋友的帮忙写了一个 例子,以作备忘。 此例子是用XML组织好的数据,来组织成树形结构。 页面 //js/** * 通过异步传输的方式来组织数据库树 */function readyDBTreeByAjax(){var divInnerHTML = document.getElementById("container2").innerHTML;if(divInnerHTML!=null&&divInnerHTML.trim().length>0){document.getElementById("container2").innerHTML = "";}var myTree = new Ext.tree.TreePanel({ el:'container2' }); var root = new Ext.tree.TreeNode({text:'DataBase'}); Ext.Ajax.request({ method: 'POST', url: 'getDBTreeData', params: {flag:'myLeftTree'}, waitMsg: '数据更新中,请稍后...', success: function(response,options){ var xmlDoc = response.responseXML; //alert(options.result.message=='1') var v_tdbs = xmlDoc.getElementsByTagName("tDB"); // 所有 的数据库 if(v_tdbs!=null&&v_tdbs.length>0) { for(var i=0;i<v_tdbs.length;i++)// DB { var v_tdbn = (v_tdbs[i].getElementsByTagName("tDBName")[0].childNodes[0].nodeValue); // 第i个数据库的名字 //alert(v_tdbn); var vNode = new Ext.tree.TreeNode({text:v_tdbn}); //dbName var v_ttbs = v_tdbs[i].getElementsByTagName("tTBName"); if(v_ttbs!=null&&v_ttbs.length>0) { for(var j=0;j<v_ttbs.length;j++)// { var v_ttbn = v_ttbs[j].childNodes[0].nodeValue; var v_ttb = new Ext.tree.TreeNode({text:v_ttbn});vNode.appendChild(v_ttb); } } root.appendChild(vNode); } } myTree.setRootNode(root); myTree.render(); myTree.addListener('click', nodeOnClick); }, failure: function(response,options){ Ext.Msg.alert("信息提示", "获取数据库数据出错,请稍后再试!"); }, autoAbort:false});}// html body div<div id="container2"></div> action /** * 根据数据库名称,得到该数据库下面的所有表 * @return */public String initDBTreeWithXML() {//String flag = request.getParameter("flag");response.setContentType("text/xml;charset=utf-8");response.setCharacterEncoding("utf-8");PrintWriter pw = null; try {pw = response.getWriter();} catch (IOException e) {e.printStackTrace();}StringBuffer sb = new StringBuffer();sb.append("<?xml version=/"1.0/" encoding=/"UTF-8/"?>");try {// 所有的数据库List<TDBMModel> lstNames= tService.findNameSpaces();sb.append("<tDBs>");for (TDBMModel tDBMModel : lstNames) {TDBMModel ob = tDBMModel;if(ob!=null){sb.append("<tDB>");sb.append("<tDBName>");sb.append(ob.getDbName());sb.append("</tDBName>");// 每个数据库下面的所有表List<TDBMModel> tbL = tService.getTablesFromNameSpace(ob.getDbName());for (TDBMModel tDBMModel2 : tbL) {TDBMModel ob2 = tDBMModel2;if(ob2!=null){sb.append("<tTB>");sb.append("<tTBName>");sb.append(ob2.getTbName());sb.append("</tTBName>");sb.append("</tTB>");}}sb.append("</tDB>");}}sb.append("</tDBs>");String xmlDBTree = sb.toString();pw.print(xmlDBTree);pw.flush();pw.close();} catch (Exception e) {e.printStackTrace();}return null;}