说明:此方法只适合于两层树的情况!
1. 一次性加载和异步加载前端的区别很简单:Ext.tree.AsyncTreeNode
2. json格式数据的区别:异步加载不需要children标签;一次性加载需要,否则的话leaf必须为true。一次性加载的json数据格式如下:
[
{"children":[
{"children":[],"iconCls":"treeNodeLeafIcon","id":21,"leaf":true, "linkUrl":"/countInjure.jsp","parentId":20,"text":"基本信息" }
],
"iconCls":"treeNodePackageIcon",
"id":20,"leaf":false,"linkUrl":"","parentId":1,"text":"统计报表"
}
]
3.PO类文件(get set方法省略)
private Integer id;
private String text;
private Boolean leaf;
private String linkUrl;
private Integer parentId;
private String iconCls;
private List<TreeNode> children;
4.controller类文件,主要代码
list = treenodeBiz.getTreeNodeById(node);
for(TreeNode tn :list){
if(!tn.getLeaf()){
tn.setChildren(treenodeBiz.getTreeNodeById(tn.getId().toString()));
}
_list.add(tn);
}
JSONArray ja = JSONArray.fromObject(_list);
String json = ja.toString();
这里用到了json-lib工具!