首先提供ztree官方网站http://www.ztree.me。 
ztree是一个使用jquery实现的jsp页面的各种功能树,本文介绍一个异步获取数据到下拉树的实现方式。 
当前版本ztree 3.5.01 
simple.html
复制代码 代码如下:
simple.html
js 
复制代码 代码如下:
var setting = { 
data: { 
simpledata: { 
enable: true 
// idkey:id, 
// pidkey:pid, 
} 
} 
,async: { 
enable: true, 
url:/java_solr/servlet/ztreeserlvet, 
autoparam:[id, name], 
otherparam:{otherparam:ztreeasynctest}, 
// datatype: text,//默认text 
// type:get,//默认post 
datafilter: filter //异步返回后经过filter 
} 
,callback:{ 
// beforeasync: ztreebeforeasync, // 异步加载事件之前得到相应信息 
asyncsuccess: ztreeonasyncsuccess,//异步加载成功的fun 
asyncerror: ztreeonasyncerror, //加载错误的fun 
beforeclick:beforeclick //捕获单击节点之前的事件回调函数 
} 
}; 
//treeid是treedemo 
function filter(treeid, parentnode, childnodes) { 
if (!childnodes) return null; 
for (var i=0, l=childnodes.length; ichildnodes[i].name = childnodes[i].name.replace('',''); 
} 
return childnodes; 
} 
function beforeclick(treeid,treenode){ 
if(!treenode.isparent){ 
alert(请选择父节点); 
return false; 
}else{ 
return true; 
} 
} 
function ztreeonasyncerror(event, treeid, treenode){ 
alert(异步加载失败!); 
} 
function ztreeonasyncsuccess(event, treeid, treenode, msg){
} 
/***********************当你点击父节点是,会异步访问servlet,把id传过去*****************************/ 
var znodes=[]; 
/* var znodes =[ 
{ id:1, pid:0, name:parentnode 1, open:true}, 
{ id:11, pid:1, name:parentnode 11}, 
{ id:111, pid:11, name:leafnode 111}, 
{ id:112, pid:11, name:leafnode 112}, 
{ id:113, pid:11, name:leafnode 113}, 
{ id:114, pid:11, name:leafnode 114}, 
{ id:12, pid:1, name:parentnode 12}, 
{ id:121, pid:12, name:leafnode 121}, 
{ id:122, pid:12, name:leafnode 122}, 
{ id:123, pid:12, name:leafnode 123}, 
{ id:13, pid:1, name:parentnode 13, isparent:true}, 
{ id:2, pid:0, name:parentnode 2, isparent:true} 
]; */ 
$(document).ready(function(){ 
$.fn.ztree.init($(#treedemo), setting, znodes); 
});
得到ztree对象 :var ztree = $.fn.ztree.getztreeobj(treedemo), 
ztreeservlet 
复制代码 代码如下:
package org.hzy.servlets; 
import java.io.ioexception; 
import java.io.printwriter; 
import java.util.arraylist; 
import java.util.list; 
import javax.servlet.servletexception; 
import javax.servlet.http.httpservlet; 
import javax.servlet.http.httpservletrequest; 
import javax.servlet.http.httpservletresponse; 
import org.hzy.bean.ztreebean; 
import com.alibaba.fastjson.json; 
public class ztreeserlvet extends httpservlet { 
public void destroy() { 
super.destroy(); 
} 
public void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { 
system.out.println(request.getparameter(id) +   + request.getparameter(name) +   + request.getparameter(otherparam)); 
response.setcharacterencoding(utf-8); 
printwriter out = response.getwriter(); 
ztreebean zb = new ztreebean(0, -1, zb, true); 
ztreebean zb1 = new ztreebean(1, 0, zb1, true); 
ztreebean zb2 = new ztreebean(2, 1, zb2, false); 
ztreebean zb3 = new ztreebean(2, 0, zbss, true); 
list list = new arraylist(); 
list.add(zb); 
list.add(zb1); 
list.add(zb2); 
list.add(zb3); 
string str = json.tojsonstring(list); 
out.print(str); 
} 
public void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { 
doget(request, response); 
} 
public void init() throws servletexception { 
} 
}
   
 
   