`

用dtree 实现ajax树

阅读更多

环境  struts2   json   dtree  jquery

 


  ActionContext ac= ActionContext.getContext();

String[] ids=(String [])ac.getParameters().get("id");//获得是一个数组。不一个字符串.

 

action代码:

 

 写道
HttpServletRequest request= ServletActionContext.getRequest();
String id=request.getParameter("id");
nodes=new ArrayList<Node>();
if(id==null)
{
Node node=new Node("1","部门一","0",false);
Node node1=new Node("2","部门二","0",false);
Node node2=new Node("3","部门三","0",false);
Node node3=new Node("4","部门四","0",false);
nodes.add(node);
nodes.add(node1);
nodes.add(node2);
nodes.add(node3);

}else{
Node node=new Node("9","部门一_1","2",false);
Node node1=new Node("10","部门一_2","2",false);
Node node2=new Node("11","部门一_3","2",false);
Node node3=new Node("12","部门一_4","2",false);
nodes.add(node);
nodes.add(node1);
nodes.add(node2);
nodes.add(node3);

}
// ActionContext ac= ActionContext.getContext();
// nodes=new ArrayList<Node>();
// String[] ids=(String[])ac.get("id");
//
// //String[] ids=(String [])ac.getParameters().get("id");
//
// if(ids==null){
// Node node=new Node("1","部门一","0",false);
// Node node1=new Node("2","部门二","0",false);
// Node node2=new Node("3","部门三","0",false);
// Node node3=new Node("4","部门四","0",false);
// nodes.add(node);
// nodes.add(node1);
// nodes.add(node2);
// nodes.add(node3);
// }else{
// String id=ids[0];
// System.out.println(id);
// if(id.equals("1"))
// {
// Node node=new Node("5","部门一_1","1",false);
// Node node1=new Node("6","部门一_2","1",false);
// Node node2=new Node("7","部门一_3","1",false);
// Node node3=new Node("8","部门一_4","1",false);
// nodes.add(node);
// nodes.add(node1);
// nodes.add(node2);
// nodes.add(node3);
// }
// else
// {
// Node node=new Node("9","部门一_1","2",false);
// Node node1=new Node("10","部门一_2","2",false);
// Node node2=new Node("11","部门一_3","2",false);
// Node node3=new Node("12","部门一_4","2",false);
// nodes.add(node);
// nodes.add(node1);
// nodes.add(node2);
// nodes.add(node3);
// }


// }

//转化为json对象
JSONArray jsonObject = JSONArray.fromObject(nodes);
try {
result = jsonObject.toString();
} catch (Exception e) {
result = "ss";
}
System.out.println(result);

return "success";

 

jsp 代码:

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
 <script src="jquery-1.4.2.min.js"></script>
  <link rel="StyleSheet" href="dtree.css" type="text/css" />
<script type="text/javascript" src="dtree.js"></script>
 <script type="text/javascript">
$(document).ready(function(){
//获取顶级部门
d = new dTree('d');
d.add(0,-1,'系统');
$.ajaxSetup({cache:false});
   $.getJSON("getTreeNode.action",function call(data){
    var org=eval("("+data+")"); 
   // alert(org.length);
      
        for(var i=0;i<org.length;i++){ 
       // alert(org[0].id);
         //id, pid, name, url, title, target, icon, iconOpen, open
         d.add(org[i].id,0,org[i].desc,"javascript:addNextOrg('"+org[i].id+"');",'测试节点');

         }
        $("#showDtree").html(d.toString());
     });
});
//获取下级部门
function addNextOrg(ID){
  $.getJSON("getTreeNode.action?id="+ID,function call(data){
  //	alert(data);
    var org1=eval("("+data+")");   
    alert(org1.length);
    if(org1.length!=0){ 
        for(var i=0;i<org1.length;i++){ 
        alert(org1[i].id);
         d.add(org1[i].id,ID,org1[i].desc,"javascript:addNextOrg('"+org1[i].id+"');",'测试节点');
       }
        $("#showDtree").html(d.toString());
    
    }
   });
}

/*
function showformDiv(id){
 $('.formDiv').hide();
 $(id).show();
 
}

function buildOrg(){
 var str=$("#buildOrg").serialize();
 
alert(str);
   $.getJSON("/simple/DynajetServlet?Method=buildOrg&"+str,function call(data){  
    var result=data.result;    
  //  alert("hello");
         $("#result").text(result);
     });
 
}*/
 
 
 /*
function orgChange(){
 $.ajaxSetup({cache:false});
 var orgId=$("#orgList").val();
 alert(orgId);
   $.getJSON("/simple/SalesServlet?Method=getRoleJson&orgId="+orgId,function call(data){  
    var continents =data.roleList;    
        for(var i=0;i<continents.length;i++){ 
        $("#roleList").append('<option value='+continents[i].roleId+'>'+continents[i].description+'</option>'); 
        }
     });
}
*/
</script>
</head>
<body>
<div id="showDtree">
</div>
</body>
</html>

 Struts2配置

 

<package name="tzp1" extends="json-default">

<action name="getTreeNode" class="com.tzp.testTree.GetTreeNode" method="execute" >

<result type="json">

<param name="root">result</param>

</result>

</action>

</package>

 

 

分享到:
评论

相关推荐

    dtree+ajax异步加载树

    2. **异步加载树节点**:当用户展开一个节点时,使用Ajax发送请求到服务器,获取该节点的子节点数据,然后使用dtree提供的API将新数据插入到现有树中。 3. **优化策略**:通常,初始加载只展示顶级节点,其余节点按...

    ajax,servlet动态加载dtree

    在本项目"ajax,servlet动态加载dtree"中,我们看到的是利用Ajax技术和Servlet实现dtree(一种树形菜单控件)的动态加载。这个项目可能是一个文件管理系统或者目录浏览应用,其中dtree用于展示文件或目录结构,而...

    在jsp中用dtree实现树形浏览

    总结起来,要在SSH框架的JSP页面中使用dtree.js实现树形浏览,你需要整合前端和后端的代码,利用dtree.js的API构建交互式树形结构,并通过Ajax获取和更新数据。这个过程涉及到JavaScript编程、Ajax通信、以及对SSH...

    dtree实现树形控件案例

    因此,你可能需要使用Ajax请求获取并更新数据,保持树与服务器数据同步。 通过掌握以上知识点,你就能有效地利用`dtree`插件创建出功能丰富、交互性强的树形控件。在实际开发中,不断实践和调整会让你对`dtree`的...

    Dtree动态树菜单

    在这个场景中,"Dtree动态树菜单"是一个专门用于实现这种功能的工具或库。下面我们将深入探讨Dtree动态树菜单的相关知识点。 1. **Dtree介绍**: Dtree通常是一个JavaScript库或者框架的一部分,用于构建可扩展的...

    stree ajax树 dtree的扩展

    本文将深入探讨Ajax树的概念,并以"stree"这个dtree的扩展为例,解析其如何通过DOM操作和数据库交互实现动态加载子节点。 **一、Ajax树概述** Ajax树是一种利用Ajax技术实现的动态加载树形结构,它能够在不刷新...

    dtree+jquery动态生成树

    4. **dtree初始化**:使用jQuery选择器找到树的容器元素,然后调用`dtree`方法,传入配置参数,如数据源URL、初始展开的节点ID等。 5. **数据加载**:当页面加载完毕或用户触发特定事件时,`dtree`会通过Ajax请求...

    dTree+jquery实现动态树形

    dTree是一个纯JavaScript实现的树形控件,它可以无需依赖任何其他库独立工作,但与jQuery结合使用时,可以更好地利用jQuery提供的DOM操作、事件处理和动画效果。dTree提供了创建、遍历和操作树形结构的API,允许...

    jsp实现树形结构dtree

    【标题】"jsp实现树形结构dtree"涉及的核心技术主要集中在JSP(JavaServer Pages)、JavaScript以及一种叫做dtree的树形展示库。这里,我们将会深入探讨这些技术及其在构建树形结构中的应用。 首先,JSP是Java的一...

    jquery dtree 实例 动态实现无限树形菜单(增删改查)

    这个实例着重展示了如何利用jQuery dTree动态地构建一个无限层级的树形菜单,并实现基本的数据操作功能,包括添加、删除、修改和查询。下面我们将深入探讨这个主题。 首先,jQuery dTree是一个轻量级的插件,它基于...

    树形控件 dtree

    你可以通过AJAX获取JSON数据,然后用这些数据构建或更新树形结构。 8. **扩展与插件** 开源的`dtree`允许开发者根据需要扩展功能,例如增加拖放操作、搜索功能或右键菜单等。社区中也可能存在现成的插件供直接使用...

    dtree+jquery 动态实现无限树形菜单 (包括增删改查)

    本主题聚焦于使用dtree与jQuery库动态实现无限层级的树形菜单,并涵盖增删改查的基本功能。dtree是一款基于jQuery的插件,它提供了丰富的API和灵活的配置选项,使得在网页上创建交互式树形菜单变得简单易行。 首先...

    js+ssh实现树 DTree

    综上所述,这个项目不仅教你如何使用DTree展示树形数据,还涵盖了SSH框架的整合和权限管理的实现,是学习前后端交互、数据库操作和权限控制的一个实用案例。开发者可以通过这个项目深入理解JavaScript与服务器之间的...

    json+dtree定时刷新dtree

    DTREE,全称Data Tree,是一种数据展示控件,通常用在图形用户界面中,用于以树形结构展示数据,它允许用户展开、折叠节点,方便地浏览和操作层次结构数据。 在"json+dtree定时刷新dtree"这个主题中,我们主要关注...

    Dtree树菜单 动态树

    DTree,作为一个动态树形菜单的实现,是网页应用中用于展现多级分类数据的有效工具。在这个项目实例中,我们将深入探讨DTree的原理、实现方式以及其在实际应用中的优势。 首先,我们要理解“动态”这个词在DTree中...

    dtree写的动态树形菜单

    这通常通过Ajax异步请求实现,请求返回的数据结构与前面示例类似,然后更新已有的dtree实例即可: ```javascript // 假设getMenuFromServer返回的是一个Promise getMenuFromServer().then(function(menuData) { ...

    多选菜单树Dtree

    总之,多选菜单树Dtree是提升用户交互体验的重要工具,通过合理的设计和实现,可以使用户在处理层次化数据时更加高效。在实际开发中,开发者需要综合运用前端和后端技术,以及良好的UI/UX设计原则,来创建功能完备、...

    dtree树 struts1+hibernate+dtree

    在"dtree树 struts1+hibernate+dtree"这个项目中,可能的实现方式是:用户通过dtree展示和操作层级数据,这些数据通过Struts1控制器与后台服务交互,而Hibernate负责将这些数据在数据库中持久化。当用户进行操作时,...

    实现dtree树形菜单的Demo

    这可以通过异步请求实现,例如使用Ajax: ```javascript fetch('data.json') .then(response =&gt; response.json()) .then(data =&gt; { data.forEach(item =&gt; tree.add(item)); }); ``` 这里假设`data.json`返回一...

    dtree树forhtml

    下面将详细探讨dtree树形插件的核心功能、使用方法以及其在HTML中的实现原理。 1. **核心功能**: - **动态加载**:dtree支持动态加载子节点,可以根据用户操作或需求逐步加载,减少初次加载时的数据量。 - **...

Global site tag (gtag.js) - Google Analytics