用struts2实现jquery_treeview来展现目录

第一步:下载 jquery_treeview 把里面的文件拷到工程目录下

第二步:设置jsp页面

首先:引用jquery_treeview的  jquery.treeview.css、screen.css、jquery.js、jquery.treeview.js四个文件

然后:在页面<body>中加入  <ul id="templateLeft"  class="filetree"></ul>

             注释:页面主要在这里实现树形结构

再次:写js代码,如下:

<script type="text/javascript">
         var treeList;
         var treeView;
         $(document).ready(function(){
                   jQuery.ajax({ 
                          type:"post", 
                          url:"后台处理代码的方法", 
                          dataType:"json", 
                          global:false, 
                          success: function(root){ 
                                   treeList = root.treeViewList;
                                   treeView = root.treeView;
                                   $("#templateLeft").append("<li class='"+treeView.classes+"'>"
                                                           +"<span id='"+treeView.treeId+"' class='folder'>"
                                                           +"<a href='javascript:void(0)' target='rightFrame'"
                                                           +"οnclick=openPage('"+treeView.treeId+"')> "+treeView.treeName+"</a>"
                                                           +"</span>"
                                                           +"<ul id='tm"+treeView.treeId+"'></ul></li>");
                                    template_tree(treeView);      //调用迭代函数
                                    $("#templateLeft").treeview(); //调用jquery_treeview中treeview函数
                            } 
                    }); 
             });

            //迭代函数
            function template_tree(root){
                    var oappend;
                    if(root.haschildren){
                             $(treeList).each(function(){
                                       if(root.treeId == this.parentNode){
                                                   if(this.haschildren){
                                                              oappend = "<li  class='"+this.classes+"'>"
                                                                       +"<span id='"+this.treeId+"' class='folder'>"
                                                                       +"<a href='javascript:void(0)' target='rightFrame'"
                                                                       +"οnclick=openPage('"+this.treeId+"')> "+this.treeName+"</a>"
                                                                       +"</span>"
                                                                       +"<ul id='tm"+this.treeId+"'></ul></li>";
                                                    }else{
                                                              oappend = "<li  class='"+this.classes+"'><span id='"+this.treeId+"' class='"+this.classes+"'>"
                                                                        +"<a href='javascript:void(0)' target='rightFrame'"
                                                                        +"οnclick=openPage('"+this.treeId+"')> "+this.treeName+"</a>"
                                                                        +"</span></li>";
                                                     }
                                                    $("#tm"+root.treeId).append(oappend);
                                                    template_tree(this);
                                             }
                                     });
                            }
                  }
                 //当点击tree链接时所调用的函数,这里可以取得树的id,进行自己相应处理
                  function openPage(id){
                        alert(id); 

                 }
  </script>

第三步:后台action代码

@Controller
@Result(name="json",type="json")
public class TemplateTreeAction{
      private static final long serialVersionUID = 1L;
      private String treeId;
      private TreeView treeView;   //树基础类
      private List<TreeView> treeViewList = new ArrayList<TreeView>();//盛放树的集合
     

      //生成树方法
      public String templateTree(){
            String path = "D:\测试"
            File rootFile = new File(path);
            treeView = new TreeView();
  
            if("测试".equals(rootFile.getName())){ //跟目录
                      treeView.setTreeId("1");
                      treeView.setParentNode("1");
                      treeView.setTreeName(rootFile.getName());
                      treeView.setClasses("filetree");
                      treeView.setExpanded(true);
                      treeView.setHaschildren(true);
                      treeView.setFilePath(path);
                      rootNode = treeView.getTreeId();
                      buildDirectoryNode(treeView);
   
               }
           //  printTree(treeView);//调用测试方法
               return "json";  //数据以json返回
        }
        private Integer i=1;
        private String rootNode;
        /**
          * 创建目录和文件树
          * @param tv  父对象
        */
         private void buildDirectoryNode(TreeView tv){
               List<TreeView>  frequencyLsit = new ArrayList<TreeView>();
               if(tv.isHaschildren()){ //判断是否有子目录
                      File fif = new File(tv.getFilePath()); 
                      if(fif.isDirectory()){ //是目录
                            File[] files = fif.listFiles();
                            for(File fi:files){
                                    TreeView tvv = new TreeView();
                                    tvv.setTreeId(tv.getTreeId()+"-"+i);
                                    tvv.setParentNode(tv.getTreeId());
                                    tvv.setTreeName(fi.getName());
                                    if(fi.isDirectory()){
                                            tvv.setHaschildren(true);
                                    }else{
                                            tvv.setClasses("file");
                                            tvv.setExpanded(true);
                                    }
                                    tvv.setFilePath(fif.getPath()+"/"+fi.getName());
                                    frequencyLsit.add(tvv);
                                    i++;
                              }
                              i=1;
                        }
                  }
                  if(!frequencyLsit.isEmpty()){
                         for(TreeView fq:frequencyLsit){
                         treeViewList.add(fq);
                         buildDirectoryNode(fq);
                  }
             }
         }
         /**
           * 打印树(测试方法)
           * @param treeViewList 树集合
          */
          private String space = "";
          private void printTree(TreeView tv){
                  if(tv.isHaschildren()){
                        System.out.println(space+"<ul class='"+tv.getClasses()+"'>");
                        space += "    ";
                        for(TreeView tvv:treeViewList){
                                 if(tv.getTreeId().equals(tvv.getParentNode())){
                                          System.out.println(space+"<li><span id='"+tvv.getTreeId()+"' class='"+tvv.getClasses()+"'>"+tvv.getTreeName()+"</span>");
                                          printTree(tvv);
                                 }
                         }
                         System.out.println(space+"</ul>");
                         System.out.println(space+"</li>");
                         space = "   ";
                    }else{
                         System.out.println(space+"</li>");
                 }
           } 
}

第四步:TreeView 树基础类代码

/**
 * 遍历文件夹中所有文件用TreeView展现
 */
public class TreeView {

 /**
  * 树的id
  */
 private String treeId;   
 /**
  * 树显示的名字
  */
 private String treeName;  
 /**
  * 父节点 
  */
 private String parentNode;  
 /**
  * true:代表这个结点下的child是展开的 ; false:代表这个结点下的child是闭合的
  */
 private boolean expanded = false;
 /**
  * true,表示其下面有子结点 ; false:没有子节点
  */
 private boolean haschildren = false;
 /**
  * 普通节点样式  folder:打开的文件夹  closed:关闭的文件夹  ;  根节点文件夹 filetree  ;  文件 file 
  */
 private String classes = "closed";
 /**
  * 文件的路径
  */
 private String filePath;
 
 
 public TreeView() {
  super();
 }
 public TreeView(String treeId, String treeName, String parentNode,
   boolean expanded, boolean haschildren, String classes,
   String filePath) {
  super();
  this.treeId = treeId;
  this.treeName = treeName;
  this.parentNode = parentNode;
  this.expanded = expanded;
  this.haschildren = haschildren;
  this.classes = classes;
  this.filePath = filePath;
 }
 public String getTreeId() {
  return treeId;
 }
 public void setTreeId(String treeId) {
  this.treeId = treeId;
 }
 public String getTreeName() {
  return treeName;
 }
 public void setTreeName(String treeName) {
  this.treeName = treeName;
 }
 public String getParentNode() {
  return parentNode;
 }
 public void setParentNode(String parentNode) {
  this.parentNode = parentNode;
 }
 public boolean isExpanded() {
  return expanded;
 }
 public void setExpanded(boolean expanded) {
  this.expanded = expanded;
 }
 public boolean isHaschildren() {
  return haschildren;
 }
 public void setHaschildren(boolean haschildren) {
  this.haschildren = haschildren;
 }
 public String getClasses() {
  return classes;
 }
 public void setClasses(String classes) {
  this.classes = classes;
 }
 public String getFilePath() {
  return filePath;
 }
 public void setFilePath(String filePath) {
  this.filePath = filePath;
 }
}
**************************************************************************************************

树完成:上传个图片  ^_^

 用struts2实现jquery_treeview来展现目录 - ytrtfhj@126 - 艾冰家园

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值