前端代码:先后顺序引入extjs-base.js 和extjs-all.js
function initTree(){
var Tree = Ext.tree;
tree = new Tree.TreePanel({
id : 'treeid',//自定义treeid
el : 'tree_id',//div标签id
split : false,
monitorResize :true,
width : 280,
rootVisible : false,//是否显根节点
autoScroll : true,//自动出现滚动条。
animate : true,
border : false,
containerScroll : true,
listeners: {
'dblclick':function(node,e){//点击节点事件
alert(node.id);
}
},
loader : new Tree.TreeLoader(//加载数据
{
baseAttrs: { uiProvider: Ext.tree.TreeCheckNodeUI },
dataUrl : '/.../treeServlet'
})
});
var root = new Tree.AsyncTreeNode({
checked : false,//根节点选择状态
text : '',
iconCls : '',
id : '1',
href : ""
});
tree.setRootNode(root);//设置根结点
tree.render();
root.expand(false,true, callback);//默认展开下级
}
function callback (node){
if(node.hasChildNodes()) {
node.eachChild(function(child){
child.expand();
})
}
}
java代码:
public class treeServlet extends HttpServlet{
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setHeader("Content-type", "text/html;charset=UTF-8");
PrintWriter out= response.getWriter();
StringBuffer sb=new StringBuffer ();
//text:节点名称,id:节点主键, leaf: 是否包含下级,icon:节点图标
sb.append("[{text: '"+nodename+"',id:'"+id+"',leaf:true,icon:'/jpg/xxx.jpg' },{text: '"+nodename1+"',id:'"+id+"',leaf:false,icon:'/jpg/xxx1.jpg' },{text: '"+nodename2+"',id:'"+id+"',leaf:false,icon:'/jpg/xxx2.jpg' }]");
out.print(sb.toString());
out.close();
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}