Tree的问题,tree的数据加载不了,不知道是什么原因,高手们请帮我看看!

ZMFKPLJ ZMFKPLJ 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
只是显示"目录树根节点",但是节点数据能正确的从后台取出,就是不能在树上显示出来?
搞了半天了,不能为什么????


代码如下

jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ include file="/common/taglibs.jsp"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<title>login</title>

<link rel="stylesheet" type="text/css" href="styles/ext/ext-all.css">
<script type="text/javascript" src="scripts/ext/ext-base.js"></script>
<script type="text/javascript" src="scripts/ext/ext-all.js"></script>
<script>

Ext.onReady(function(){

var Tree = Ext.tree;

//定义根节点的Loader
var treeloader=new Tree.TreeLoader({dataUrl:'/listSort?parentId=0&purpose=1'});

//异步加载根节点
var rootnode=new Tree.AsyncTreeNode({
id:'1',
text:'目录树根节点'
});

var treepanel = new Tree.TreePanel({
//renderTo:"tree_div",//如果使用renderTo,则不能使用setRootNode()方法,需要在TreePanel中设置root属性。
el:'tree_div', //填充区域
rootVisible:true, //隐藏根节点
border:true, //边框
animate:true, //动画效果
autoScroll:true, //自动滚动
enableDD:false, //拖拽节点
containerScroll:true,
loader:treeloader
});

//设置根节点
treepanel.setRootNode(rootnode);

//响应事件,传递node参数
treepanel.on('beforeload',
function(node){
treepanel.loader.dataUrl='/listSort?parentId=0&purpose=1'+node.id; //定义子节点的Loader
});

treepanel.render();
rootnode.expand(false,false);
});

</script>

</head>

<body>

<div id="tree_div" style="height:101%;width:100%"></div>

</body>
</html>



取节点的servlet中的方法
这里的数据是能正确返回为json格式化数据的


public void list(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {

Integer purpose=null;
if(request.getParameter("purpose")!=null && !"".equals(request.getParameter("purpose"))){
purpose=Integer.parseInt(request.getParameter("purpose"));

request.setAttribute("purpose", purpose);
}

Integer parentId=null;
if(request.getParameter("parentId")!=null && !"".equals(request.getParameter("parentId"))){
parentId=Integer.parseInt(request.getParameter("parentId"));

request.setAttribute("parentId", parentId);
}

List<SortBean> listSort=sortService.listSortByParentId(purpose, parentId);
List<TreeNode> listTree=null;

if(listSort!=null && listSort.size()>0){

listTree=new ArrayList<TreeNode>();
TreeNode tree=null;


//将从数据库中取的数据转换为TreeNode
for(SortBean sort : listSort){
tree=new TreeNode();

tree.setId(sort.getId().toString());
tree.setText(sort.getName());

List<SortBean> list2=sortService.listSortByParentId(sort.getPurpose(), sort.getId());
tree.setLeaf(list2.size()>0?true:false);
tree.setExpandable(false);

listTree.add(tree);
}
}

JSONArray jsonArray =null;

if(listTree!=null){
boolean scriptTag = false;
String cb = request.getParameter("callback");
if (cb != null) {
scriptTag = true;
}

response.setContentType("text/x-json;charset=UTF-8");
Writer out;

try {
out = response.getWriter();

jsonArray = JSONArray.fromObject(listTree);

if (scriptTag) {
out.write(cb + "(");
}
JSONObject jsobjcet = new JSONObject();

jsobjcet.put("totalCounts", listTree.size());

jsobjcet.put("root", jsonArray);

response.getWriter().print(jsonArray);
// out.write(jsobjcet.toString());

System.out.println(jsobjcet.toString());

out.write("{\"recordCount\":\"" +listTree.size()+ "\",\"datalist\":"+ jsonArray.toString()+ "}");
if (scriptTag) {
out.write(");");
}

//JSONArray JsonArray = JSONArray.fromObject(TreeNodeArray); //�õ�JSON����


} catch (IOException e) {
e.printStackTrace();
}
}

//return jsonArray;

}



用的两个Bean

SortBean.java
public class SortBean implements Serializable{


private static final long serialVersionUID = 5882317401560085117L;

private Integer id;

private String name;

private Integer parentId;

private Integer purpose;


public Integer getPurpose() {
return purpose;
}

get,set方法略...



}


TreeNode.java
public class TreeNode implements Serializable{

private static final long serialVersionUID = 1L;

public static void main(String[] args) {

}

private String id; //ID
private String text; //节点显示
private String cls; //图标
private boolean leaf; //是否叶子
private String href; //链接
private String hrefTarget; //链接指向
private boolean expandable; //是否展开
private String description; //描述信息

//get、set方法。略。

}
}
...全文

相关推荐

基于element-ui封装可搜索的懒加载tree组件的实现

引言 最近开发项目时遇到一个需求就是采用tree的方式展示以万为单位的数据,因为数据量大第一反应就是采用“懒加载”的方式实现,为了方便用户在庞大的数据量中快速定位到某个节点搜索功能也是必不可少的;因为采用“懒加载”数据,搜索当然也是远程搜索了;确定了需求当然第一时间就去网上找有没有小伙伴已经实现了相关组件,最后….,还是自己实现一个吧(由于公司采用的element-ui所以基于el-tree进行改造);【这只是自己实现的一种思路,希望大家多多指正】 1.懒加载树的实现 刚开始准备直接采用el-tree自带的懒加载方式,但在实现过程中发现el-tree采用懒加载后没有展开树节点,这显然行不通;思

weixin_38630324

详解如何实现Element树形控件Tree在懒加载模式下的动态更新

主要介绍了详解如何实现Element树形控件Tree在懒加载模式下的动态更新,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

weixin_38609571

关于 jQuery Easyui异步加载tree的问题解析

想要实现从本地中加载json文件,通过事件来动态的插入到ul中时,遇到了一小bug,下面小编给大家解答下

weixin_38691006

JqueryEasyUI Tree 动态加载,稍作修改就可以用了

JqueryEasyUI Tree 动态加载,稍作修改就可以用了,希望对有需要的人有帮助

穷的没朋友

flex的tree动态加载大量数据与滚动条相关问题探讨

本文将对flex的tree动态加载大量数据与滚动条相关的问题进行探讨,感兴趣的朋友可以参考下哈,希望对你有所帮助

weixin_38550334
评论 8
收藏 已收藏
分享
返回顶部
ZMFKPLJ
Ajax 52,778 成员 25,334 内容