求助,zTree 3.0 + Struts2 + JQuery
ztree吧
全部回复
仅看楼主
level 3
令狐冲0660 楼主
新近在项目中引入JQuery与zTree,可是问题来了,在ACTION中STRUTS2返回的数据格式为:
{"menuList":[{"isParent":true,"pId":null,"name":"n1","id":"01"},{"isParent":false,"pId":"01","name":"n2","id":"02"},{"isParent":false,"name":"n3","id":"03"},{"isParent":false,"name":"n4","id":"04"}],"success":true}
而我需要显示为树的数据结构仅仅是menuList里面的东西,研究了很长时间也没找到ACTION如何直接返回menuList的方法,对于这种情况zTree3.0应该如何设置呢?
Action代码如下:
@Action(value="bindAsMenuTree",results={@Result(type="json",params={"root","menuList"})})
public String bindAsMenuTree() throws Exception {
Map treeNode = null;
this.menuList = new ArrayList();
treeNode.put("id" , "01");
treeNode.put("pId" , null);
treeNode.put("name" , "n1");
treeNode.put("isParent" , true);
this.menuList.add(treeNode); treeNode = new HashMap();
treeNode.put("id" , "02");
treeNode.put("pId" , "01");
treeNode.put("name" , "n2");
treeNode.put("isParent" , false);
this.menuList.add(treeNode); treeNode = new HashMap();
treeNode.put("id" , "03");
treeNode.put("name" , "n3");
treeNode.put("isParent" , false);
this.menuList.add(treeNode); treeNode = new HashMap();
treeNode.put("id" , "04");
treeNode.put("name" , "n4");
treeNode.put("isParent" , false);
this.menuList.add(treeNode);
this.success = true;
return MenuManageAction.SUCCESS;
}
2012年01月08日 23点01分 1
level 3
令狐冲0660 楼主
补充一下,页面代码拷贝的示例文件async.html里的代码,仅仅是修改了URL
2012年01月08日 23点01分 2
level 11
你可以利用 dataFilter 对加载的数据进行预处理,把满足zTree 的数据 return 就可以了
2012年01月09日 02点01分 3
level 1
这样就行
async : {
dataFilter: function(treeId, unknown, json) {
return json.menuList;
}
}
老大在官网上的API对
dataFilter回调函数的参数解释比较模糊。
childNodesArray(JSON) / JSON
异步加载获取到的数据转换后的 Array(JSON) / JSON 数据对象
第三个参数就是异步响应的结果。 当时没看明白
Array(JSON) / JSON 这个中间的斜线是“后者”的意思吧 呵呵
2012年01月09日 08点01分 4
level 11
你理解他就是 异步响应的结果是
正确的
。 但之所以写两种是因为 v3.0 改造以后,允许用户只添加一个独立的节点,这时候就不用必须传入[] 数组,只需要 {} 一个JSON 对象即可。 这种操作对于 v2.x 是不允许的——在v2.x中,不管有几个结果,都必须要用[] 数组进行传递。
2012年01月09日 09点01分 5
level 11
补充一下,感谢你的热心,以后看到觉得难以理解的语言希望你能及时告诉我,我也好尽快修正,这样可以便于其他的朋友看懂了。
2012年01月09日 09点01分 6
level 3
令狐冲0660 楼主
谢谢兄弟们,,,明白了,,,测试通过,,,非常感激,,,解决了困扰许久的问题,,,一直没在网上找到答案,,,原来使用这么方便
同时捐助10元(现在属于自主创业筹备阶段,经济还比较困难,不能捐太多了,,,呵呵)并祝ZTREE越来越好,,,
2012年01月09日 23点01分 7
level 11
万分感谢,为表谢意,今天发布 v3.0 正式版。 [顶]
2012年01月10日 01点01分 8
level 3
令狐冲0660 楼主
多谢,,,已经在用最新版了,,,[Yeah]
2012年01月10日 07点01分 9
level 3
您好,请帮忙看一下代码,为什么我这样设置ztree,却不显示效果呢?
var setting = {
data: {
simpleData: {
enable: true,
idKey: "userid",
pIdKey: "groupid",
rootPId: 0,
}
};
var treeNodes = [
{"userid":1, "groupid":0, "name":"test1"},
{"userid":11, "groupid":1, "name":"test11"},
{"userid":12, "groupid":1, "name":"test12"},
{"userid":111, "groupid":11, "name":"test111"}
];
$(document).ready(function(){
$.fn.zTree.init($("#treeDemo"), setting, treeNodes );
});

2012年04月03日 01点04分 10
level 11
1、请对比简单数据模式的 Demo 的代码
2、请确认你的页面上是否 有 id="treeDemo" 的 ul 存在?
2012年04月05日 06点04分 11
1