`

SpringMVC+mybatis 实现easyui中tree

阅读更多
  最近做项目用到了前端框架easyUI,以下是easyUI tree 的前后台实现。

  1.前端页面使用easyui的tree
  <ul id="tree"></ul>

  $("#tree").tree({
     url:'orgManage.do',
   }
  });
 
  2.创建TreeJson的dto

  import java.io.Serializable;
  import java.util.ArrayList;
  import java.util.List;
  import net.sf.json.JSONObject;
/**
* easui中的tree_data.json数据,只能有一个root节点
* [{  
    "id":1,  
    "text":"Folder1",  
    "iconCls":"icon-save",  
    "children":[{  
        "text":"File1",  
        "checked":true 
    }]  
}]
* 提供静态方法formatTree(List<TreeJson> list) 返回结果
* TreeJson.formatTree(treeJsonlist) ;
*/
public class TreeJson implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = 1L;

    private String id ;
    private String pid ;
    private String text ;
    private String iconCls ;
    private String state ;
    private String checked ;
    private JSONObject attributes = new JSONObject() ;
    private List<TreeJson> children = new ArrayList<TreeJson>() ;
   

public static List<TreeJson> formatTree(List<TreeJson> list) {

        TreeJson root = new TreeJson();
        TreeJson node = new TreeJson();
        List<TreeJson> treelist = new ArrayList<TreeJson>();// 拼凑好的json格式的数据
        List<TreeJson> parentnodes = new ArrayList<TreeJson>();// parentnodes存放所有的父节点
       
        if (list != null && list.size() > 0) {
            root = list.get(0) ;
            //循环遍历oracle树查询的所有节点
            for (int i = 1; i < list.size(); i++) {
                node = list.get(i);
                if(node.getPid().equals(root.getId())){
                    //为tree root 增加子节点
                    parentnodes.add(node) ;
                    root.getChildren().add(node) ;
                }else{//获取root子节点的孩子节点
                    getChildrenNodes(parentnodes, node);
                    parentnodes.add(node) ;
                }
            }   
        }
        treelist.add(root) ;
        return treelist ;

    }

    private static void getChildrenNodes(List<TreeJson> parentnodes, TreeJson node) {
        //循环遍历所有父节点和node进行匹配,确定父子关系
        for (int i = parentnodes.size() - 1; i >= 0; i--) {
           
            TreeJson pnode = parentnodes.get(i);
            //如果是父子关系,为父节点增加子节点,退出for循环
            if (pnode.getId().equals(node.getPid())) {
                pnode.setState("closed") ;//关闭二级树
                pnode.getChildren().add(node) ;
                return ;
            } else {
                //如果不是父子关系,删除父节点栈里当前的节点,
                //继续此次循环,直到确定父子关系或不存在退出for循环
                parentnodes.remove(i) ;
            }
        }
    }
}

3.mapper.xml配置
  <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.lafecat.dao.OrgMapper">
<resultMap id="orgMap" type="com.lafecat.model.TreeJson" >
    <id column="Organization_ID" property="id" jdbcType="VARCHAR" />
    <result column="OrganizationName" property="text" jdbcType="VARCHAR" />
    <result column="ParentID" property="pid" jdbcType="VARCHAR" />
  </resultMap>
    <!--获取所有组织机构信息-->
   <select id="getOrgInfo"  resultMap="orgMap"> 
    SELECT t.`Organization_ID`,t.`OrganizationName`,t.`ParentID`  FROM TE_Organization t
   </select>
</mapper>

4.ServiceImpl实现
  public List<TreeJson> getOrgInfo() {
List<TreeJson> treeList =orgMapper.getOrgInfo();
treeList = TreeJson.formatTree(treeList);
return treeList;
}
  
  5.Controller层实现
  public void listOrgs(HttpServletResponse res){
List<TreeJson> list = orgService.getOrgInfo();
                String jsonString= JSONArray.fromObject(list).toString();
res.setHeader("Pragma", "No-cache");
res.setHeader("Cache-Control", "no-cache");
res.setCharacterEncoding("UTF-8");
res.getWriter().print(jsonString);
res.getWriter().flush();
res.getWriter().close();
}
0
1
分享到:
评论

相关推荐

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

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

    Java Spring4集成MyBatis SpringMVC JQuery EasyUI 后台框架

    1. 该框架的开发环境为EclipseJEE集成开发工具。 2. 基于Spring4框架的三层架构开发完成。 3. Mybatis版本为:3.2.8。... 系统实现了较为完善的用户模块,对用户数据实现了增、删、改、查、分页等的功能。

    ssm+mysql+easyui-tree省市区三级联动

    在“ssm+mysql+easyui-tree”项目中,MyBatis可能会用于与MySQL数据库交互,执行查询省市区数据的SQL语句,如获取所有省份、根据省份获取城市,以及根据城市获取区县的SQL。 EasyUI是一套基于jQuery的UI库,提供了...

    自己做的easyUI+mybatis+springMVC项目示例代码以及easyUI中tree的异步加载代码

    在本项目示例中,我们探索的是一个基于EasyUI、MyBatis和SpringMVC的Web应用程序开发。EasyUI是一个轻量级的JavaScript框架,它提供了丰富的UI组件,如表格、下拉菜单、树形结构等,使得前端界面的开发变得简单易行...

    springmvc-easyui-tree增删改

    在IT行业中,SpringMVC和EasyUI是两个非常重要的技术组件。SpringMVC是Spring框架的一个模块,专门用于处理Web应用程序的模型-视图-控制器(MVC)架构,而EasyUI则是一个基于jQuery的前端UI库,提供了一系列美观且...

    easyuiTree实例

    项目是关于搭建easyui+springmvc+mybatis+mysql 来实现管理系统的功能,其中还使用了funcharts来实现报表的形式。里面有sql文件,导入到数据库中,加载好项目,就可以运行。

    easy ui tree 前后端树形结构项目 权限管理demo

    本项目"easy ui tree 前后端树形结构项目 权限管理demo"提供了一个完整的解决方案,使用了Easy UI Tree库来实现前端的树形结构,并结合SSM(Spring、SpringMVC、MyBatis)框架和MySQL数据库进行后端处理。...

    easyui开发的CRM

    在本案例中,EasyUI 被应用于一个 CRM(客户关系管理)系统中,该系统由 Java 技术栈开发,结合了 SpringMVC 框架,实现了高效且灵活的后端逻辑处理。 1. **EasyUI 知识点**: - **组件库**:EasyUI 提供了诸如 ...

    基于ssm+mysql的分布式电商系统(前后台+订单管理+门户)源码+项目说明.zip

    spring,springmvc,mybatis(框架) solr(搜索服务),redis(缓存),easyUI(后台系统页面) ### 数据库设计 tb_user用户表(id,username,password,phone,email,created,updated) tb_item商品表(id,title,sell_point,...

    基于SpringBoot的通用管理平台源代码+数据库+详细文档

    以SpringBoot为核心框架,集ORM框架Mybatis,Web层框架...树形结构:EasyUI Tree 日期插件:JQuery Date 弹窗框架:zDialog Cookie保存:JQuery Cookie 富文本编辑器:Baidu UEDitor 前端框架:Twitter Bootstrap

    一个适合新手学习的电商项目

    spring,springmvc,mybatis(框架) solr(搜索服务),redis(缓存),easyUI(后台系统页面) ### 数据库设计 tb_user用户表(id,username,password,phone,email,created,updated) tb_item商品表(id,title,sell_point,...

    studentmanager:可以作为毕业设计的学生信息管理系统,包含学生,教师,管理员的多功能模块

    技术栈为SpringBoot,SSM,Mysql,thymeleaf等毕业设计 :briefcase: MD5加密 :locked: SpringBoot与SSM框架 :artist_palette: easyui与h-ui框架 :Christmas_tree: 百里香叶前置引擎 :four_leaf_clover: MySQL数据库 ...

Global site tag (gtag.js) - Google Analytics