码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-03-11 13:07:05      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:jquery   ajax   

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>

效果:

技术分享




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

标签:jquery   ajax   

原文地址:http://blog.csdn.net/xiaosheng_papa/article/details/44195521

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!