`
wedtlcy
  • 浏览: 24114 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Struts+Ztree无极限树

 
阅读更多

Struts+Ztree无极限树实现:
1、集成工作将不再这里赘述,直接上代码。

2、通过表单新增各树节点。
/**
* 新增
*/
public void add(){

        request= ServletActionContext.getRequest();
       
       try{
          SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          java.util.Date time= df.parse(df.format(new Date()));
          String T ="_";
         //获取登录用户信息
         String  fdid = (String)get(""+ResourceUtil.getStringValue("uId")+"");
         CsmsTUsers user = (CsmsTUsers) csmsTUsersService.findByPrimaryKey(fdid) ;
       //CsmsTModule Parent = (CsmsTModule)   csmsTModuleService.findByPrimaryKey(moduleParent.getFdId());
       CsmsTModule csmsTModule = new CsmsTModule();  
       String fdModuleId = baseCoreSnService.getPrefixSerialNumber(4, CsmsTModule.class, "GN") ;
        csmsTModule.setFdModuleId(fdModuleId);
        csmsTModule.setFdModuleName(fdModuleName);
        csmsTModule.setFdModuleUrl(fdModuleUrl);
        if(StringUtil.isNotNull(moduleParent.getFdId())){
        CsmsTModule Parent = (CsmsTModule)      csmsTModuleService.findByPrimaryKey(moduleParent.getFdId());
       csmsTModule.setModuleParent(Parent);
       String treep = T+Parent.getTreePath()+T+csmsTModule.getFdId();//有父节点的情况下,树路径为下划线+父节点的路径+自己的主键(T+Parent.getTreePath()+csmsTModule.getFdId())
       csmsTModule.setTreePath(treep.replace("__", "_"));
      }else{
          csmsTModule.setTreePath(csmsTModule.getFdId());
     }
      csmsTModule.setRemark(remark);
      csmsTModule.setDelflag(false);
      csmsTModule.setCreateid(user);
      csmsTModule.setCreatetime(time);

           String result = csmsTModuleService.add(csmsTModule);
           if(result == null){
           JSONObject object=new JSONObject();
       object.put("statusCode", "300");
       object.put("message", "操作失败!");
       object.put("navTabId", "L00104");
       object.put("rel", "");
       object.put("callbackType", "closeCurrent");  //closeCurrent
       object.put("forwardUrl", "");
       out(object);
           }else{
           JSONObject object=new JSONObject();
          object.put("statusCode", "200");
          object.put("message", "操作成功!");
          object.put("navTabId", "L00104");
          object.put("rel", "");
          object.put("callbackType", "closeCurrent"); //closeCurrent
          object.put("forwardUrl", "");
          out(object);
           }
     }catch(Exception ex){
        ex.printStackTrace();
   }
}

3、封装节点数据。
    public void doGetPrivilegeTree() throws IOException{ 
    HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
    try {
List<CsmsTModule> moduleList = new ArrayList<CsmsTModule>();
StringBuffer whereBlock= new StringBuffer();

StringBuffer orderBy=new StringBuffer(" order by c.fdModuleId asc");
int currentPage1=1;
int numPerPage1=1000;

moduleList = csmsTModuleService.findlist(whereBlock.toString(),
orderBy.toString(), currentPage1, numPerPage1);

response.setContentType("application/json"); 
         response.setCharacterEncoding("UTF-8"); 
    
PrintWriter writer = response.getWriter();
List<Map<String ,String>> mapList = new ArrayList<Map<String ,String>>();
if(moduleList!=null&&moduleList.size()>0 ){

for(CsmsTModule csmsTModule:moduleList){
Map<String ,String> map = new  HashMap<String ,String>();
map.put("id", csmsTModule.getFdId());
if(csmsTModule.getModuleParent()!=null){
String pId=csmsTModule.getModuleParent().getFdId();
map.put("pId", pId);
}else{
String pId=csmsTModule.getFdId();
map.put("pId", pId);
}
map.put("name", csmsTModule.getFdModuleName());
mapList.add(map);
}
ActionContext.getContext().put("mapList", mapList);
}
response.getWriter().print(JSONArray.fromObject(mapList).toString());
System.out.println("---"+mapList);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
    } 


4、JSP页面设置树相关信息并获取后台返回数据
<script type="text/javascript">
//以下是树相关JS
  var setting = { 
            isSimpleData : true,              //数据是否采用简单 Array 格式,默认false 
            treeNodeKey : "id",               //在isSimpleData格式下,当前节点id属性 
            treeNodeParentKey : "pId",        //在isSimpleData格式下,当前节点的父节点id属性 
            rootPId: 0,
            showLine : true,                  //是否显示节点间的连线 
            check: {
enable: true,  //每个节点上是否显示 CheckBox
nocheckInherit: true
},
data: {
simpleData: {
enable: true
}
},
callback: {
onCheck: onCheck,
beforeCheck: beforeCheck
}

        }; 
         
        var zTree; 
        var treeNodes; 
        $(function(){ 
            $.ajax({ 
                async : false, 
                cache:false, 
                type: 'POST', 
                dataType : "json", 
                url:"moduleAction_doGetPrivilegeTree",//请求的action路径 
                error: function () {//请求失败处理函数 
                    alert('请求失败'); 
                }, 
                success:function(data){ //请求成功后处理函数。   
                    treeNodes = data;   //把后台封装好的简单Json格式赋给treeNodes
                    $.fn.zTree.init($("#treeDemo"), setting, treeNodes);
                } 
            }); 
        });   
      
       
        function onCheck(e,treeId,treeNode){
        var treeObj=$.fn.zTree.getZTreeObj("treeDemo"),
            nodes=treeObj.getCheckedNodes(true),
            treeNames="";
        treefdIds="";
            for(var i=0;i<nodes.length;i++){
            treeNames+=nodes[i].name + ",";
            treefdIds+=nodes[i].id + ",";
            }
            document.getElementById('fdModulefdids').value=treefdIds;
            document.getElementById('fdModuleNames').value=treeNames;
            }
       
        function beforeCheck(treeId, treeNode) {
return (treeNode.doCheck !== false);
}
</script>

 

5、树路径结构正常就可以无极限。其实还可以做的更好,各节点可直接在树上进行操作详情可参考http://www.ztree.me/v3/main.php#_zTreeInfo。

 

6、树效果图


 


 7、表数据以及树路径



 

  • 大小: 29.8 KB
  • 大小: 288.7 KB
分享到:
评论

相关推荐

    struts2.0+ztree+jquery动态生成树结构

    在提供的两个文件"struts+ztree+jquery动态生成树结构1.txt"和"struts+ztree+jquery动态生成树结构2.txt"中,很可能是分别展示了这两种方法的具体实现细节,包括Action的代码示例、前端的jQuery代码和ZTree的配置。...

    layui+ztree下拉树,支持单选和多选

    `layui`和`ztree`这两个工具结合,可以实现一个功能强大的下拉树组件,支持单选和多选,大大提升了用户体验。本文将详细介绍如何利用`layui`和`ztree`来构建这样的组件,并探讨其关键技术和应用场景。 `layui`是一...

    jQuery+bootstrap+ztree多选下拉树

    事先声明下(代码非常杂乱,并未写成插件,方法都是非常low的方法),这个是模拟bootstrap的插件select-picker插件完成的多选下拉树,类似picker中,这个也可以输入进行查询,因为项目特殊需要,里面都是直接id命名...

    mvc+EF+easyui+ztree

    自己最近两天刚做的mvc项目linq to model first,包括分页,动态加载菜单栏,登录,记住密码,权限分配(差一步,等后续),非常适合刚入mvc的人借鉴,后续有更新,请下载者留下邮箱,后续会发到你的邮箱,或有什么...

    ajax+zTree 文件树

    **Ajax + zTree 文件树详解** 在Web开发中,实现动态、交互式的文件目录结构展示是常见的需求。Ajax和zTree结合使用,可以构建出高效、美观的文件树视图。zTree是一款基于JavaScript的开源树形插件,它利用Ajax技术...

    bootstrap+ztree+table

    当结合使用 Bootstrap、ZTree 和 Table 时,我们可以创建一个具有树形结构的表格,即树形表格。这样的设计常用于展示具有层级关系的数据,并允许用户进行筛选、排序和操作。ZTree 作为树结构的展示部分,可以与 ...

    easyui+ztree后台管理系统模板

    而ZTree则是一个强大的树形插件,适用于展示和操作树状数据结构,常用于菜单、组织结构或者文件目录的展示。 在"easyui+ztree后台管理系统模板"中,我们可以看到以下几个关键知识点: 1. **EasyUI框架**:EasyUI...

    Struts2 + Jmesa (表格插件) + Ztree (树形插件) 小例子

    整合的 Struts2 + Jmesa (表格插件) + Ztree (树形插件) 的小例子 里边带齐了 jar包 部署上直接运行 其中数据都是固定数据 没有连接数据库~~~ 共同学习~~

    EF+MVC3+zTree动态加载

    3. **zTree**:zTree是一款基于jQuery的树插件,它提供了丰富的树形结构展示功能,如节点的拖放、展开/折叠、多选等。zTree广泛应用于网页中的菜单、文件目录、层级数据展示等场景。 现在,我们来看看如何将这些...

    dt+ztree+ajax的DEMO

    【dt+ztree+ajax的DEMO】是一个整合了Datatables、ZTree和Ajax技术的示例项目,旨在实现用户在ZTree中进行交互时,通过Ajax异步加载数据到Datatables表格中的功能。这个DEMO展示了如何将这三者有效地结合,以提供一...

    JQ EasyUI1.4.4示例 + zTree3.5.19 完美的 tree +tab 框架布局(修正菜单)

    JQ EasyUI1.4.4示例 + zTree3.5.19 完美的 tree +tab 框架布局(修正菜单) 看图介绍!http://blog.csdn.net/cyy11/article/details/50449918 之前下载过的与我联系。

    SSH+ztree+ajax+json

    在SSH+ztree+ajax+json项目中,Ajax可能被用于异步地从服务器获取数据(例如JSON格式),然后动态地更新ZTree的节点,提供更流畅的用户体验。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于...

    Django+zTree构建组织架构树的方法

    zTree则是一个依靠JQuery实现的多功能树形图插件,它有着出色的性能和灵活的配置选项,可以帮助开发者快速地在网页上构建出组织架构、文档结构等层级关系图形。 在构建组织架构树时,我们首先需要了解zTree的基本...

    EasyUI1.4+zTree3.5.16完美结合框架布局

    EasyUI和zTree是两个非常流行的JavaScript库,用于构建用户界面和实现数据树形展示。在Web开发中,它们常被结合使用以提供高效的管理界面和动态的数据操作。 EasyUI是一个基于jQuery的轻量级框架,它提供了丰富的UI...

    后台框架easyLayou+ztree

    EasyUI是基于jQuery的轻量级UI框架,而ZTree则是一个专用于展示树形结构数据的插件。它们在后台框架中的应用,旨在提供一个高效、美观且易于操作的界面,帮助开发者快速搭建后台管理系统。 EasyUI提供了丰富的UI...

    Spring+Struts2+ibatis+Sqlite+Ztree的整合例子

    这是一个基于Java技术栈的Web应用整合实例,涵盖了Spring、Struts2、iBatis、SQLite和ZTree等多个组件。下面将分别对这些技术进行详细解释。 **Spring框架**: Spring是一个开源的Java平台,它主要提供了依赖注入...

    IT信息管理系统(springMVC+Mybatis+spring+easyui+zTree+ueditor+higchart)

    springMVC+Mybatis+spring+easyui+zTree+ueditor+higchart IT信息管理系统,需要tomcat+sqlsever+jdk1.6,源代码提供了数据库模型,数据库备份文件,以及服务启动注意事项。系统模块有:权限管理、用户管理、部门...

    bootstrap+ztree树形结构

    Bootstrap 和 ZTree 结合使用,可以创建出美观且功能丰富的树形结构组件。Bootstrap 是一个流行的前端开发框架,提供了一套简洁、直观、强大的响应式设计工具,而 ZTree 是一款基于 jQuery 的树插件,它能够实现各种...

    .net mvc+ztree+webapi本地文件遍历查询系统

    ZTree是一款流行的JavaScript树形插件,它能够在前端以树状结构展示文件或目录。在本项目中,ZTree被用于构建用户友好的文件浏览界面。通过异步加载机制,ZTree可以有效地展示大量文件和目录,同时支持用户进行展开...

Global site tag (gtag.js) - Google Analytics