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>
原文地址:http://blog.csdn.net/xiaosheng_papa/article/details/44195521