针对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. linux基础-第十七单元 Samba服务

    Samba的功能 Samba的安装 Samba服务的启动.停止.重启 Samba服务的配置 Samba服务的主配置文件 samba服务器配置实例 Samba客户端设置 windows客户端 Linux ...

  2. VS2013 无法在Web服务器上启动调试。IIS未列出与打开的URL匹配的网站。

    出现这个问题的原因是:没有用管理员权限运行VS2013. 本来遇到这个问题的时候,不知道什么原因.后来附加到进程调试的时候,提示要以管理员身份运行.才知道啥原因.

  3. js和jQuery的日常

    让当前页面显示整个屏幕 - (iframe 从后台跳转到前台的时候容易多层嵌套)$(document).ready(function(){ if(window.top != window.self) ...

  4. 【CodeVS 1198】【NOIP 2012】国王游戏

    http://codevs.cn/problem/1198/ 推导一翻,排好序后,直接上高精度. #include<cstdio> #include<cstring> #inc ...

  5. 【CodeVS 3289】【NOIP 2013】花匠

    http://codevs.cn/problem/3289/ dp转移,树状数组维护前缀max和后缀max进行优化,$O(nlogn)$. #include<cstdio> #includ ...

  6. python日常-list and dict

    什么是list: list 觉得算是python日常编程中用的最多的python自带的数据结构了.但是python重的list跟其他语言中的并不相同. 少年..不知道你听说过python中的appen ...

  7. REST服务中的异常处理

    在REST服务中,服务端如果产生了异常信息,无论是业务异常或是系统异常,如果直接将异常抛出,在客户端浏览器中,是无法获取异常的详细,只能获取一个StateCode 500 Internal Serve ...

  8. js-格式化数字保留两位小数-带千分符

    很多时候发现有时候js会提示自带函数不能使用,所以自己找了很多资料实现了个 html <input type="text" class="input_text in ...

  9. HTTP协议学习---(九)cookie

    Cookie是HTTP协议中非常重要的东西, 之前拜读了Fish Li 写的[细说Cookie], 让我学到了很多东西.Fish的这篇文章写得太经典了. 所以我这篇文章就没有太多内容了. 最近我打算写 ...

  10. 安装Win7提示Windows无法安装到磁盘怎么办

    Windows之家(www.windowszj.com):在安装Win7系统的过程中,由于每台电脑的状态不一样,比如硬件配置原因,或者是硬盘格式.硬盘状态等问题,会使得每台电脑在安装过程中都会有些不一 ...