ztree v3.x 异步加载的简单用法

ztree官网:http://www.ztree.me/v3/main.php#_zTreeInfo

页面:

<span style="font-size:14px;"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<link rel="stylesheet" type="text/css" href="jquery/zTree/css/demo.css">
	<link rel="stylesheet" type="text/css" href="jquery/zTree/css/zTreeStyle/zTreeStyle.css">
	<script type="text/javascript" src="jquery/zTree/js/jquery-1.4.4.min.js"></script>
    <script type="text/javascript" src="jquery/zTree/js/jquery.ztree.core-3.5.min.js"></script><!-- 核心js -->
    <script type="text/javascript" src="jquery/zTree/js/jquery.ztree.excheck-3.5.min.js"></script><!-- 复选框js -->
    <script type="text/javascript" src="jquery/zTree/js/jquery.ztree.exedit-3.5.min.js"></script><!-- 可编辑js -->
  </head>
  <script type="text/javascript">
  		// zTree v3.x用法
  		function init(){
  			var setting = {
					async:{
						enable: true,//启用异步加载
						url:"TestzTreeServlet?type=load",
						autoParam:["id", "name"],//后台接受参数的名称
						//dataFilter: filter//数据过滤
						type:"post"
					},
					view:{
						showIcon:true,//显示图标
						showLine:true,//显示连线
						showTitle:true,
						fontCss:{color:"blue"}//字体样式
					},
					edit:{
						enable: true, //允许编辑节点
						showRenameBtn: true,
						renameTitle: setRenameTitle,
						showRemoveBtn:false
					},
					callback:{
						onAsyncError:function(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown){//加载异常
							alert(errorThrown);
						},
						onRename:function(event, treeId, treeNode, isCancel){
							var ps={id:treeNode.id,name:treeNode.name};
							$.post("TestzTreeServlet?type=edit",ps,function(data){
								var treeObj=$.fn.zTree.getZTreeObj(treeId);
								if(data!="true"){
									alert(data);
									treeObj.refresh();
								}
							});
						},
						onClick:show	//节点点击事件
					}
				};
				/*
				var treeNodes=[{id:1,pId:0,name:"文件夹1",isParent:true}
							   {id:11,pId:1,name:"文件1",isParent:false}
							   {id:12,pId:1,name:"文件2",isParent:false}
							   {id:2,pId:0,name:"文件夹1",isParent:true}
							];
				$.fn.zTree.init($("#file_tree"), setting,treeNodes);
				*/
				$.fn.zTree.init($("#file_tree"), setting);
		}
		function filter(treeId, parentNode, childNodes) {
			if (!childNodes) return null;
			for (var i=0, l=childNodes.length; i<l; i++) {
				childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.');
			}
			return childNodes;
		}
		function show(event, treeId, treeNode){
			alert("id="+treeNode.id+",pId="+treeNode.pId);
		}
		function setRenameTitle(treeId, treeNode) {
			return treeNode.isParent ? "编辑父节点名称":"编辑叶子节点名称";
		}
  </script>

  <body onload="init()">
  	呵呵。。。
	<div class="zTreeDemoBackground left" style="margin-left:50px;">
     	<ul id="file_tree" class="ztree"></ul>
	</div>
  </body>
</html>
</span>

后台:

<span style="font-size:14px;">package servlet;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;

//import com.google.gson.JsonArray;

import util.TreeJson;

public class TestzTreeServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");

		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html");

		String id=request.getParameter("id");
		String type=request.getParameter("type");
		if(id==null || "".equals(id)){
			id="E:/test";
		}
		if(type!=null && type.equals("edit")){
			String name=request.getParameter("name");
			String msg="true";
			try{
				if(name==null || name.trim().equals("")){
					msg="节点名称不能为空!";
				}
				editFile(id,name);
			}catch(Exception e){
				msg="编辑失败:"+e.getMessage();
			}
			response.getWriter().write(msg);
		}else{
			List list=readPath(id);

			JSONArray json=JSONArray.fromObject(list);
			response.getWriter().write(json.toString());
		}
	}

	public static List readPath(String path){
		List list=new ArrayList();
		File file = new File(path);
		if(file.exists()){
			File[] fs=file.listFiles();
			if(fs!=null && fs.length>0){//有多个文件
				for(int i=0;i<fs.length;i++){
					Map map = new HashMap();

					map.put("id", fs[i].getAbsolutePath());
					map.put("pId", path);
					map.put("name", fs[i].getName());
					map.put("isParent",fs[i].isFile()==true?"false":"true");

					list.add(map);
				}
			}
		}
		return list;
	}
	public static void editFile(String path,String rename) throws Exception{
		File file = new File(path);
		if(file.exists()){
			String rePath="";
			if(path.contains("/")){
				rePath=path.substring(0, path.lastIndexOf("/")+1)+rename;
			}else if(path.contains("\\")){
				rePath=path.substring(0, path.lastIndexOf("\\")+1)+rename;
			}
			file.renameTo(new File(rePath));
		}
	}
}
</span>

效果:

时间: 2024-11-08 21:31:20

ztree v3.x 异步加载的简单用法的相关文章

jquery easyui tree异步加载的简单用法

jsp页面: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+reque

ztree学习之异步加载节点(一)

ztreedemo.jsp: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":&quo

ZTree异步加载树结构

var setting = { async:{ autoParam:["parentId"], enable:true, type:"post", url:getUrl, dataFilter:filter, }, check : { chkStyle: "radio", enable: false, chkboxType : { "Y" : "s", "N" : "ps&qu

listview中getview异步加载网络图片

前言:本以为异步加载挺简单,因为网上代码多,但真想要做好,还真不那么简单,从看代码到弄懂再到自己写,实在是有太多的东西需要学了,用了两天的时间,终于弄出来了,因为用到回调函数,所以理解起来可能难度有点大,讲起来也不太好讲,我尽力讲的明白些,其实还是要多看代码,自己摸索摸索,动手写写就什么都理解了.这篇我们只讲怎样实现异步加载,对于滑动时停止加载的事下篇再讲. 实现效果: 1.异步加载图片,在加载图片时,先加载一个默认的图片,然后在后台加载图片,加载完成后显示出来: 2.当用户在滑动时,停止加载图

一个异步加载图片的公用类: EGOImageLoading

逛论坛的时候,发现偶尔还会有人在问怎么做图片的异步加载,很多回答都还是告知用原始的connection,收到数据NSData以后,再用UIImage initWithData生成图片对象.对于刚开始接触iOS开发的人来说,我还是推荐用这种方式的.但是对于已经有一定iOS开发经验的人来说,我推荐你们用比较成熟的第三方公用类.为什么这么说呢,1) 首先图片异步加载属于一个公共的问题空间,这部分的代码,对于所有需要加载网络图片的项目,逻辑都是一样的,也就是我们应     该把这部分代码做成可重用的,或

介绍同步加载、异步加载、延迟加载

同步加载 同步模式又称阻塞模式,会阻止浏览器的后续处理,停止了后续的文件的解析,执行,如图像的渲染.流览器之所以会采用同步模式,是因为加载的js文件中有对dom的操作,重定向,输出document等默认行为,所以同步才是最安全的.通常会把要加载的js放到body结束标签之前,使得js可在页面最后加载,尽量减少阻塞页面的渲染.这样可以先让页面显示出来 简单的说 js在网页中加载会阻塞到未加载的css,html的加载跟渲染 •异步加载也叫非阻塞模式加载,浏览器在下载js的同时,同时还会执行后续的页面

【zTree】简单实例与异步加载实例

[zTree]简单实例与异步加载实例 我们在项目中经常会需要用到树,这次按照数据库存储的特点重新了做一个小demo,使用zTree来实现这个功能. 简单实例: 首先我们需要在界面中引入代码,很简单,但是很重要,它用来存放加载的树. ps:添加ztree的引用,下载地址:http://www.ztree.me/v3/main.php#_zTreeInfo [html] view plain copy <span style="font-family:KaiTi_GB2312;font-siz

zTree异步加载自动展开

最近在处理一个树形菜单,要做到异步加载.自动展开.可怎么搞都不行,要点击一下才能展开所有. 使用的zTree版本是v3.5.18.其实还是蛮简单的.话不多说,代码如下: /**  * 初始化菜单  */ var initTree = function(treeId) {     var settings = {             treeId: treeId,             async: {                 enable: true,               

JQuery ztree 异步加载实践

本来要做一个文件目录浏览界面,需要遍历所有的文件和目录,很显然一次性读取时很费时费力的一件事情. 因此就需要做异步加载.... 不过网上的几篇帖子还挺坑的!原始参考:JQuery异步加载实例,相对来说这篇博客还算规整! 准备工作 1 JQuery ZTree,下载地址 复制其中的JS和CSS即可,其实没必要引那么多,用什么引什么就可以. 2 需要fastJSON,用来转换JSON对象,下载地址 我下载JAR包后,引入到Eclipse中总是报找不到class错误. 解决办法:把jar包放在WEB-