dtree在Struts应用实例--文件目录的便历和生成目录树

1. 环境的建立:
1.1 安装Oracle 创建全局数据库
      名称为ora;用户名为:znb;密码:12345678
1.2 创建表名为officetree:
      创建的SQL文件为:
conn znb/12345678;
create table officetree(ID varchar(50),
                      PID varchar(50),
                     NAME varchar(100),
                      URL varchar(200),
                    TITLE varchar(20),  
                   TARGET varchar(20),  
                     ICON varchar(20), 
                 ICONOPEN varchar(20),  
                   OPENED varchar(20) );
   ID :主键
   PID:父类ID
   NAME:结点名称
   URL:结点连接的URL
   TITLE:类似ALT的一种结点显示内容
   TARGET:连接打开的目标
   ICON:图片文件,没有指定将使用默认的图片
   ICONOPEN:打开结点后的图片文件,没有指定将使用默认的图片
   OPENED:结点是否打开
   控件文档下载:http://www.destroydrop.com/javascripts/tree/
  1.3 安装JBuilder 或 Eclipse + MyEclipse+Tomcat 配置参见:http://cn.iblog.com/index.php?op=ViewArticle&articleId=67434&blogId=11737
   注:本例采用JBuilder 9,如果用Eclipse 请将Class12.jar拷贝到Tomcat的/common/lib下否则会
  出现 Class.forName("oracle.jdbc.driver.OracleDriver"); 异常.
 2 编写代码:
 2.1 在JBuilder 9 建立工程名字随便起
 2.2 建立程序包OPFile
2.2.2  创建类:TreeNode
public class TreeNode {
  private String icon;
  private String iconOpen;
  private String id;
  private String name;
  private String opened;
  private String pid;
  private String target;
  private String title;
  private String url;
  public TreeNode() {
  }
   public String getIcon() {
     return icon;
   }
   public void setIcon(String icon) {
     this.icon = icon;
   }
   public String getIconOpen() {
     return iconOpen;
   }
   public void setIconOpen(String iconOpen) {
     this.iconOpen = iconOpen;
   }
   public String getId() {
     return id;
   }
   public void setId(String id) {
     this.id = id;
   }
   public String getName() {
     return name;
   }
   public void setName(String name) {
     this.name = name;
   }
   public String getOpened() {
     return opened;
   }
   public void setOpened(String opened) {
     this.opened = opened;
   }
   public String getPid() {
     return pid;
   }
   public void setPid(String pid) {
     this.pid = pid;
   }
   public String getTarget() {
     return target;
   }
   public void setTarget(String target) {
     this.target = target;
   }
   public String getTitle() {
     return title;
   }
   public void setTitle(String title) {
     this.title = title;
   }
   public String getUrl() {
     return url;
   }
   public void setUrl(String url) {
     this.url = url;
   }
}
2.2.3 创建类Directory:
import java.io.*;
import oracle.jdbc.*;
import java.util.Stack;
import java.sql.*;
import java.util.*;
public class Directory {
  Stack stack;
  long id;
  Parent pid;
  private Connection ora_Conn ;
  private Statement ora_Stmt;
  private ResultSet ora_Rs;
  public Directory() {
    stack=new Stack();
    id=0;
    pid=new Parent();
  }
/*
得到数据库连接
*/
  public void getConn()
  {
    String DBURL = "";
    String DBUSER = "";
    String DBPASS = "";
    if(ora_Conn==null)
    {
      try {
        Class.forName("oracle.jdbc.driver.OracleDriver");
        DBURL = "jdbc:oracle:thin:@127.0.0.1:1521:ora";
        DBUSER = "znb";
        DBPASS = "12345678";
        ora_Conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
        ora_Stmt= ora_Conn.createStatement();
        System.out.println(".................ok..................");
      }
      catch (Exception se) {
        System.out.println(se);
      }
    }
  }
/* 在数据库中生成属性结构所必须的信息*/
  public void GetDirectoryList(String inPath)
  {
    File Directory = new File(inPath);
    File [] FileList;
    FileList = Directory.listFiles();
    long parentid=-1;
    Parent ParentId =new Parent();
    String sql;
    try{
      ParentId.setParentId(pid.getParentId());
      parentid = pid.getParentId();
      for (int i = 0; i < FileList.length; i++) {
        System.out.println("id="+id);
        System.out.println("i="+i);
        id++;
        if (FileList[i].isFile()) {
          String fileName = FileList[i].getName(); //
取得文件名
            String docPath = inPath + fileName;
            sql="insert into officetree values('"+id+"','"+parentid+"','"+fileName+"','"+" +"','"+"','"+"mainFrame"+"','"+"','"+"','"+"')";
            ora_Rs=ora_Stmt.executeQuery(sql);
        }
        else {
          String pathss = "";
          pathss = inPath;
          pathss = pathss + FileList[i].getName() + "//";
          sql="insert into officetree       values('"+id+"','"+parentid+"','"+FileList[i].getName() +"','"+"','"+"','"+"','"+"','"+"','"+"')";
          ora_Rs=ora_Stmt.executeQuery(sql);
          stack.push(ParentId);
          pid.setParentId(id);
          GetDirectoryList(pathss);
          pid = (Parent) stack.pop();
        }
      }
}catch(Exception e)
    {
      System.out.println(e);
    }
  }
/*
读取信息到连表并返回
*/
  public ArrayList getFileTree()
  {
    ArrayList list =new ArrayList();
    TreeNode Node;
    String sql="select * from  officetree";
    try{
      ora_Rs = ora_Stmt.executeQuery(sql);
      while (ora_Rs.next()) {
        Node=new TreeNode();
        Node.setId(ora_Rs.getString("ID"));
        Node.setPid(ora_Rs.getString("PID"));
        Node.setName(ora_Rs.getString("NAME"));
        Node.setUrl(ora_Rs.getString("URL"));
        Node.setTarget(ora_Rs.getString("TARGET"));
        Node.setTitle(ora_Rs.getString("TITLE"));
        Node.setIcon(ora_Rs.getString("ICON"));
        Node.setIconOpen(ora_Rs.getString("ICONOPEN"));
        Node.setOpened(ora_Rs.getString("OPENED"));
        list.add(Node);
      }
      return list;
    }catch(Exception e)
    {
      System.out.println(e);
    }
    return null;
  }
  public void Con_Close()
  {
    try{
      if(!ora_Conn.isClosed())
      {
        ora_Conn.close();
      }
    }
    catch(Exception e)
    {
      System.out.println(e);
    }
  }
  public static void main(String [] argc)
  {
    Directory d=new Directory();
    d.getConn();
    d.GetDirectoryList("N://
行政管理//");
d.Con_Close();
  }
}
2.2.4 创建类:Parent
public class Parent {
  long parentid;
  public Parent() {
    parentid=-1;
  }
  public void setParentId(long id)
  {
    this.parentid=id;
  }
  public long getParentId()
  {
    return this.parentid;
  }
}
2.2.4 创建TreeBean:
public class TreeBean {
  public TreeBean() {
  }
  public Collection getTree()
  {
    ArrayList list=new ArrayList();
    Directory d=new Directory();
    d.getConn();
    list=d.getFileTree();
d.Con_Close();
    return list;
  }
}
创建jsp:
 <%@ page contentType="text/html; charset=GB2312" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c_rt" %>
<html>
<head>
<title>
tree
</title>
</head>
 
<link rel="StyleSheet" href="ccs/dtree.css" type="text/css" />
<script type="text/javascript" src="js/dtree.js"></script>
<jsp:useBean id="treeBean" scope="session" class="OPFile.TreeBean" />
<%--
<c:set var="treeList" value="${rightBean.treeList}"/>
--%>
<% session.setAttribute("treeList",treeBean.getTree()); %>
<%--
两种方法都可以实现也可以使用Action实现。
--%>
</head>
<body >
<script type='text/javascript'>
        tree = new dTree('tree');
        tree.config.folderLinks=false;
        tree.config.useCookies=false;
    <logic:iterate id="a" name="treeList">
    tree.add("<bean:write name="a" property="id"/>",
             "<bean:write name="a" property="pid"/>",
             "<bean:write name="a" property="name"/>",
             "<bean:write name="a" property="url"/>",
             "<bean:write name="a" property="title"/>",
             "<bean:write name="a" property="target"/>",
             "<bean:write name="a" property="icon"/>");
     </logic:iterate>
     document.write(tree);
</script>
</body>
</html>
2.2.5 将下载的 css , js , img文件拷贝到/struts/下
2.2.6 加载Oracle 数据库JDBC驱动:在工程目录下创建Lib文件夹将/Oracle/Ora81/jdbc/lib中的Class12.jar考到Lib中在Jbuilder 9->Project->Project Properties..->Path->Required Libraries->add 加入Class12.jar
2.3 为解决中文问题需要继承ActionServlet 然后重写process方法。
具体如下:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import org.apache.struts.action.ActionServlet;
 
public class myActionServlet extends ActionServlet {
 private static final String CONTENT_TYPE = "text/html; charset=GB2312";
 protected void process(HttpServletRequest request, HttpServletResponse response)
      throws java.io.IOException, javax.servlet.ServletException {
    // 设置字符集编码
request.setCharacterEncoding("GB2312");
super.process(request, response);
 }
 
}
2.5:
Web.inf 中更改servlet配置为:
    <servlet-name>action</servlet-name>
<servlet-class>OPFile.myActionServlet</servlet-class>
3 :看运行结果:
先运行Directory类生成目录数。
启动Tomcat 在IE地址栏上输入:http://localhost:8080/struts/tree.jsp
结果:
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值