针对Ztree的简单使用和后台交互的写法(一)中的树进行改进

1.增加节点的权限

由页面的当前用户,决定树的根节点 然后动态获取树的详细节点:

初始化函数为:

function init(){
  //初始化的时候,先将当前用户发送给后台,获取该网评员的权限(所属部门,部门ID)
  $.ajax({
    url:baseCtx+"/media/RootNodebyCuruser.action",
    data:{ WPY_ID:curuser},//curuser:当前用户的ID,WPY_ID为传入后台数据的字段名
    type : 'post',
    async : false,
    dataType : "json",
    success: function(data){
      var org_id=data[0].ORG_ID;//获取当前用户对应树的根节点ID
      var org_name=data[0].ORG_NAME;//当前用户对应的根节点name

      //成功后回调,向后台发送权限 并获取相应权限下的树节点数据
      $.post(baseCtx+"/media/getOrgZTreebyCuruser.action",{id: org_id, name: org_name},function(data){

      //其中id和name是传入后台的参数,值分别为根据当前用户获取的 部门ID:org_id和部门名称:org_name
      var result= $.parseJSON(data);//解析树节点
      rw_tree=$.fn.zTree.init($("#tree1"),setting, result);
      });
    },
});

2.页面向后台请求action的写法

/**
* 有权限的Ztree树,通过当前用户的ID获取树的根节点信息(节点 的部门ID, 节点的部门名称)---------------------------------------
* @return
*/
  @Action(value = "getOrgZTreebyCuruser")

  public String getOrgZTreebyCuruser(){
  List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();

  //第一级数据(根节点,得加判断)
  Map<String, Object> orgMap = new HashMap<String, Object>();

  orgMap.put("open", true);
  orgMap.put("id", id);
  orgMap.put("name", name);
  resultList.add(orgMap);

  //第二级数据(下级部门)
  List<Map<String, Object>> OrgresultList1 = new ArrayList<Map<String, Object>>();
  OrgresultList1 = orgZTreeBPO.getOrgList(orgMap);
  //判断列表是否为空
  if(null != OrgresultList1 && OrgresultList1.size() !=0)
  {
    //如果不为空,则他有下级部门,那么该节点属于父节点
    orgMap.put("isParent", true);
    for (Map<String, Object> map1 : OrgresultList1) {
    resultList.add(map1);

    //获取第三级数据
    List<Map<String, Object>> OrgresultList2 = new ArrayList<Map<String, Object>>();
    OrgresultList2 = orgZTreeBPO.getOrgList(map1);
    if(null != OrgresultList2 && OrgresultList2.size() !=0)
    {
      for (Map<String, Object> map2 : OrgresultList2) {
      resultList.add(map2);

      //获取第四级数据
      List<Map<String, Object>> OrgresultList3 = new ArrayList<Map<String, Object>>();
      OrgresultList3 = orgZTreeBPO.getOrgList(map2);
      if(null != OrgresultList3 && OrgresultList3.size() !=0)
      {
        for (Map<String, Object> map3 : OrgresultList3) {
        resultList.add(map3);
        }
      }
      }
    }
  }
}

outputJson(resultList);
System.out.println(resultList);
return NONE;
}

3.xml中访问数据库

增加当前用户ID获取所属部门和部门ID,name的语句

4.其他

在bpo,mapper中分别写入对应的方法接口和实现。

注:getOrgList 是根据当前节点获取下级节点的实现

Ztree的简单使用和后台交互的写法(二)的更多相关文章

  1. Ztree的简单使用和后台交互的写法(一)

    一.引入ztree的头文件 <!-- 引入ztree/--> <script type="text/javascript" src="${pageCon ...

  2. ajax简单后台交互

    ajax简单后台交互 1,扯淡 单身的生活,大部分时间享受自由,小部分时间忍受寂寞. 生活有时候,其实蛮苦涩,让人难以下咽.那些用岁月积累起来的苦闷,无处宣泄,在自己的脑海里蔓延成一片片荆棘,让你每每 ...

  3. 简单web网页与SSM后台交互

    简单web网页与SSM后台交互 情况说明 如今,已经搭建好SSM后台开发环境,并且可以经由postman工具测试成功.现在尝试写出web前端网页,通过实现简单的提交.注册.查询功能来加深对前后端数据传 ...

  4. Extjs 4.2 Grid增删改及后台交互(Java)

    上次发了Easyui Datagrid的增删改查的使用学习记录后一直想整理下基于Extjs4.2的Grid学习使用记录.苦于抽不出时间,一直拖到现在.不得不说,Extjs确实很强大,新版的Neptun ...

  5. 通过ajax前端后台交互/登录页和注册页前端后台交互详解/前端后台交互基础应用/几个后台函数的基础应用/php文件函数基础应用/php字符传函数基础应用/php数组函数基础应用

      前  言  PHP     学习了好久的PHP,今天做一个可以后台交互的登录页和注册页,没做什么判断,简单的了解一下. 具体的内容分析如下: ① PHP中的数据传输-->>由注册页传输 ...

  6. PHP中使用 $_GET 与$_POST 实现简单的前后台数据传输交互功能

    在之前的学习过程中我们接触过前后台数据请求交互的方法有表单提交.AJAX请求以及Angularjs中的$http,今天我们尝试在PHP中使用 $_GET 与$_POST 实现简单的前后台数据传输交互功 ...

  7. 如何用CropBox实现头像裁剪并与java后台交互

    如何用CropBox实现头像裁剪并与java后台交互 参考网站:https://developer.mozilla.org/zh-CN/docs/Web/API/Blob 参考: http://blo ...

  8. js与后台交互详述(入门篇)

    很多新手前端在初期学习的时候往往把注意力放在如何编写页面,如何编写效果上,群里有个朋友问我js是如何与后台交互的,我简单的说一下. 首先需要知道两个东西,一个是客户端,一个是服务器,客户端其实就是我们 ...

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

    由于公司架构较旧,使用的jdk版本为1.4,页面上也没有el表达式. 加入 js 文件 <% String context = request.getContextPath(); %> & ...

随机推荐

  1. directly receive json data from javascript in mvc

    if you send json data to mvc,how can you receive them and parse them more simply? you can do it like ...

  2. wsdl说明书

    WSDL文档的结构实例解析 <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns ...

  3. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...

  4. navicat cannot create file 文件名、目录名或卷标语法不正确 解决方法

    配置了mycat,用navicat连接8066端口,点击“查询”的时候发现出现报错: 开始以为是mycat的配置有问题,找了好久都没发现错误.根据提示信息进入到相应的目录发现每个连接其实就是一个win ...

  5. 转: linux内核版本本地版本号的检查——setlocalversion

    转载:http://blog.csdn.net/adaptiver/article/details/7225980 1.   引子 编译2.6.35.7 kernel版本的时候发现,"2.6 ...

  6. html页面中meta的作用

    meta是用来在HTML文档中模拟HTTP协议的响应头报文.meta 标签用于网页的<head>与</head>中,meta 标签的用处很多.meta 的属性有两种:name和 ...

  7. Android获取屏幕宽和高

    android获取屏幕的高度和宽度用到WindowManager这个类,两种方法:   1.WindowManager wm = (WindowManager) getContext()        ...

  8. [bzoj2517]矩形覆盖

    Description 给定一个$l\;\times\;w$的矩形,和$n$个圆,求最小的$k$使得每个圆的半径$\;\times\;k$后,能覆盖整个矩形. Input 第一行一个整数$T$,表示数 ...

  9. linux命令语法格式

    一.命令的一般格式 command [option]... [argument]... command [options] [arguments] 具体说明: 1.command: 表示命令的名称,如 ...

  10. List<List<String>>

    package list; import java.util.ArrayList; import java.util.List; public class MyList { public static ...