⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treenodes.java

📁 一款功能强大的树状菜单
💻 JAVA
字号:
package blue.lip.tags;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class TreeNodes extends HttpServlet {
  private static final String CONTENT_TYPE = "text/html; charset=GBK";
//  private BlueTreeTag BlueTreeTag=new BlueTreeTag();

  public void init() throws ServletException {
  }

  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType(CONTENT_TYPE);
    response.setHeader("Pragma", "No-cache");
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", 0);

    PrintWriter out = response.getWriter();
    String node_id=request.getParameter("node");
    String level=request.getParameter("level");

//    System.out.println("进入servlet");
//    System.out.println(node_id+":"+level);

    if(node_id==null || "".equals(node_id)){
      throw new ServletException("节点ID参数错误!");
    }
    if(level==null || "".equals(level)){
      throw new ServletException("节点级别参数错误!");
    }

    try {
      out.println(this.createNodeTree(node_id, Integer.parseInt(level)+1));
    }
    catch (Exception ex) {
      ex.printStackTrace();
      throw new ServletException("树请求异常:"+ex.getMessage());
    }
  }

  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
  }

  public void destroy() {
  }

  public String createNodeTree(String node_id,int level)throws Exception {
    StringBuffer result=new StringBuffer();

    BlueTreeFactory treeFactory = new BlueTreeFactory();
    System.out.println("haha:"+BlueTreeTag.blueClass);
    BlueTreeInterFace tree = (BlueTreeInterFace) treeFactory.create(BlueTreeTag.blueClass);

    List elements = null;
    elements = tree.getTreeElements(node_id);


    //开始创建树
    result.append("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"");
    result.append(BlueTreeTag.styleClass);
    result.append("\">");

    //创建第N级节点
    for (int i = 0; i < elements.size(); i++) {
      BlueTreeData treeData = new BlueTreeData();
      treeData = (BlueTreeData) elements.get(i);
      //加超连接头
      //===================================================
      result.append("<tr onMouseOver=\"this.className='");
      result.append(BlueTreeTag.onMouseOver);
      result.append("'\" onMouseOut=\"this.className='");
      result.append(BlueTreeTag.onMouseOut);
      result.append("'\">");
      result.append("<td>");

      //根据节点级别加递进线图片
      //===================================================
      for(int j=1;j<level;j++){
        result.append("<img align=\"absmiddle\" src=\"");
        result.append(BlueTreeTag.imageURL);
        result.append(BlueTreeTag.lineImg);
        result.append("\" class=\"");
        result.append(BlueTreeTag.imgClass);
        result.append("\">");
      }
      //===================================================

      result.append("<a class=\"");
      result.append(BlueTreeTag.linkClass);
      result.append("\" href=\"");

      if((treeData.isIschild() && BlueTreeTag.isFolderURL) || !treeData.isIschild()){
//        System.out.println("目录连接URL");
        if(BlueTreeTag.isUseDataURL){
          result.append(treeData.getUrl());
        }else{
          result.append(BlueTreeTag.blueURL);
        }
        //添加节点连接参数
        result.append("?");
        result.append("node=");
        result.append(treeData.getId());
      }else{
//        System.out.println("目录不连接URL");
        result.append("javascript:void(null);");
      }
      result.append("\" target=\"");
      result.append(BlueTreeTag.target);
      //添加节点单击事件
      //===================================================
      if(treeData.isIschild()){
        result.append("\" onClick=\"clickTreeNode('");
        result.append(treeData.getId());
        result.append("','");
        result.append(level);
        result.append("','");
        result.append(BlueTreeTag.styleClass);
        result.append("','");
        result.append(BlueTreeTag.imageURL);
        result.append("','");
        result.append(BlueTreeTag.imgClass);
        result.append("','");
        result.append(BlueTreeTag.lineImg);
        result.append("','");
        result.append(BlueTreeTag.endLineImg);
        result.append("','");
        if(BlueTreeTag.useDataImg.equalsIgnoreCase("all")){
          result.append(treeData.getOpenimg());
        }else{
          result.append(BlueTreeTag.fileImg);
        }
        result.append("','");
        if ( (i + 1) != elements.size()) {
          result.append(BlueTreeTag.openImg);
          result.append("','");
          result.append(BlueTreeTag.closeImg);
        }else{
          result.append(BlueTreeTag.endFolderOpenImg);
          result.append("','");
          result.append(BlueTreeTag.endFolderCloseImg);
        }
        result.append("','");
        if(BlueTreeTag.useDataImg.equalsIgnoreCase("all")){
          result.append(treeData.getOpenimg());
          result.append("','");
          result.append(treeData.getCloseimg());
        }else{
          result.append(BlueTreeTag.folderOpenImg);
          result.append("','");
          result.append(BlueTreeTag.folderImg);
        }
        result.append("');");
      }
      //===================================================

      result.append("\">");

      //===================================================

      //加节点展开关闭图片
      result.append("<img align=\"absmiddle\" class=\"");
      result.append(BlueTreeTag.imgClass);
      result.append("\" id=\"sign_img_");
      result.append(level);
      result.append("_");
      result.append(treeData.getId());
      result.append("\" src=\"");

      result.append(BlueTreeTag.imageURL);
      if((i+1)!=elements.size()){
        if (treeData.isIschild()) {
          result.append(BlueTreeTag.closeImg);
        }
        else {
          result.append(BlueTreeTag.elementLineImg);
        }
      }else{
        if (treeData.isIschild()) {
          result.append(BlueTreeTag.endFolderCloseImg);
        }
        else {
          result.append(BlueTreeTag.endLineImg);
        }
      }
      result.append("\">");

      //加节点图片
      result.append("<img align=\"absmiddle\" class=\"");
      result.append(BlueTreeTag.imgClass);
      result.append("\" id=\"node_img_");
      result.append(level);
      result.append("_");
      result.append(treeData.getId());
      result.append("\" src=\"");

      result.append(BlueTreeTag.imageURL);
      if(BlueTreeTag.useDataImg.equalsIgnoreCase("all")){
        result.append(treeData.getOpenimg());
      }else{
        if (treeData.isIschild()) {
          result.append(BlueTreeTag.folderImg);
        }
        else {
          result.append(BlueTreeTag.fileImg);
        }
      }
      result.append("\">&nbsp;");
      //加节点名字
      result.append(treeData.getName());
      //加超连接尾
      //===================================================
       result.append("</a>");
      //===================================================

      result.append("</td>");

      result.append("</tr>");
      //加下一级节点空间
      if(treeData.isIschild()){
        result.append("<tr>");
        result.append("<td style=\"display:none;\" id=\"tree_");
        result.append(level);
        result.append("_");
        result.append(treeData.getId());
        result.append("\">&nbsp;");
        result.append("</td>");
        result.append("</tr>");
      }
    }

    result.append("</table>");

    return result.toString();
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -