项目中简单使用ztree,简单数据。

由于公司架构较旧,使用的jdk版本为1.4,页面上也没有el表达式。

加入 js 文件

<%
String context = request.getContextPath();
%>


<link rel="stylesheet" href="<%=context%>/tfms/contract/js/zTree_v3/css/zTreeStyle/zTreeStyle.css" type="text/css">

<script type="text/javascript" src="<%=context%>/tfms/contract/js/zTree_v3/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="<%=context%>/tfms/contract/js/zTree_v3/js/jquery.ztree.core.js"></script>

js部分

$(function(){

    var setting = {
            async:{
                enable : true,                                                 // 开启异步加载
                url: "<%=context%>/tfms/contract/manage/list.do?action=tadta",    // url
                otherParam: ["id",'']                                        // 初始化发送的参数可要可不要,如果传["id",null] 时,后台会解析成 : "null" 
            },
            data: {
                simpleData: {                
                    enable: true,            // 简单数据模式
                    idKey: "id",            
                    pIdKey: "pId",    
                    rootPId: null              
                }
            },
            view:{
                selectMulti:false        //表示禁止多选
            },
            check:{
                
            },
            callback:{
                onClick:function(event,treeId,treeNode){            // 点击 事件
                    alert(treeNode.name+"<--->"+treeNode.id);
                }
            }
    };  
    

    $.fn.zTree.init($("#ztree"), setting, null);


});

html

<ul id="ztree" class="ztree"></ul>

 

简单数据模式很方便。例 

var treeNodes = [
    {"id":1, "pId":0, "name":"test1"},
    {"id":11, "pId":1, "name":"test11"},
    {"id":12, "pId":1, "name":"test12"},
    {"id":111, "pId":11, "name":"test111"}
];

后台

public void tadta(ActionHelper help) throws IOException{
        HttpServletResponse response = help.getResponse();
        HttpServletRequest request = help.getRequest();
        ContractService contractService = (ContractService) help.getService();         // 项目架构 struts1 + hibernate3 没有 spring 
        String id = request.getParameter("id");
        List list = contractService.queryByTestCage(id);
        StringBuffer bstr = new StringBuffer("[");
        list.remove(0);                                  // 这个节点是项目中所用到的,所以不展示这个节点
        for (int i = 0; i < list.size(); i++) {
            ContractCagetoryVO vo = (ContractCagetoryVO) list.get(i);            //拼凑需要 数据的格式  
            bstr.append(i==0?"{id:'"+vo.getFid()+"',name:'"+vo.getFname()+"',pId:'"+vo.getFparent_id()+"'}":",{id:'"+vo.getFid()+"',name:'"+vo.getFname()+"',pId:'"+vo.getFparent_id()+"'}");
        }
        bstr.append("]");
        response.setCharacterEncoding("utf-8");        // 如果不设置 utf-8 中文会变  ??                         
        response.getWriter().print(bstr);
    }

ztree的数据格式比较好组装,可以不使用 JSON 嵌套格式数据!!

效果 

 

posted @ 2017-11-01 14:22  一片番薯  阅读(6311)  评论(1编辑  收藏  举报