js控制树型菜单

  其实我的也不是全部的用js控制,其中还包含了jsp的列表查询 ,把查询出来的数据按照树型结构显示,看以前写的代码,很乱,脑袋都大了还是没弄出个所以然来.又从网上找出些例子,一步一步的搞.我对js实在是不熟悉,看起来就头疼,不过没办法,也只能硬着头皮去做.总算是实现了这个小小的功能.拿出来大家分享一下,高手就不要看了,没什么技术含量.

我写的是一个标签类,一些查询方法就不写了,那样就太多了

这是标签类,里面是查询的结果,并添加类一些图片,实在也没什么

 package com.caexpo.taglib;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.tagext.TagSupport;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;

import com.caexpo.model.WcmCureinfo;
import com.caexpo.dao.WcmAreaclassDAO;
import com.caexpo.dao.WcmCureinfoDAO;
import com.caexpo.dao.WcmAreaclassDAO;
import com.caexpo.dao.WcmInfoclassDAO;
import com.caexpo.model.WcmAreaclass;
import com.caexpo.model.WcmInfoclass;
import com.wcms.datebase.GetPool;
import com.wcms.util.LeftTree;

public class Menutree extends TagSupport {
public int doStartTag() throws JspException {
  
  HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
  try{
   JspWriter out = pageContext.getOut();
   out.print(Menutree().toString());
  }catch(IOException ex)
  {
   ex.getStackTrace();
  }
  
  return SKIP_BODY;
 }
 public String Menutree()
 {
  
  LeftTree lTree = new LeftTree();
  StringBuffer stbTable = new StringBuffer();
  try {
    WcmAreaclassDAO wad = WcmAreaclassDAO.getInstance();
    WcmInfoclassDAO wid = WcmInfoclassDAO.getInstance();
    WcmAreaclass wac = new WcmAreaclass();
    WcmInfoclass wic = new WcmInfoclass();
   
    String iStr = "<IMG align=absMiddle border=0 height=20 src='images/I.gif' width=19>";
    String oStr = "<IMG align=absMiddle border=0 height=20 src='images/O.gif' width=19>";
    
    String sql2 = "from WcmAreaclass ";
    String sql3 = "from WcmInfoclass t where  length(t.infoclassid)<3 order by t.infoclassid asc";
    
    List arealist1 = wad.searchInfoByHql(sql2);
    List infolist1 = wid.searchBySql(sql3);
    

    
    String classname="";
    StringBuffer sb =new StringBuffer(); 
    
    ///循环区域类。得到的值加入到stringBuffer
    for(int k=0;k<arealist1.size();k++)
    {
     wac = (WcmAreaclass)arealist1.get(k);
     classname=wac.getAreaclassname();
     sb.append("<tr><td>"+iStr );
  //   sb.append("&nbsp;");
     ///当取到最后一个值时,添加的图片改变
     if(k==arealist1.size()-1)
     {sb.append("<IMG align=absMiddle border=0 height=20 src='images/L.gif' width=19>");}
     else{
     sb.append("<IMG align=absMiddle border=0 height=20 src='images/T.gif' width=19>");}
     sb.append("<IMG align=absMiddle src='images/item1.gif' style='MARGIN-RIGHT: 5px'>");
     
//     sb.append("<IMG align=absMiddle border=0 id=me Tree src='images/Tplus.gif'>");
     sb.append("<A class=treestyle href='#' target=mainFrame ");
     sb.append("title=''><FONT id=Title>");
     sb.append(classname+"</FONT></A></td></tr>");
    }
    
    ///添加信息的头部并打印出来
    stbTable.append("<DIV >");
    stbTable.append("<DIV id=Title >");
    stbTable.append("<IMG align=absMiddle border=0 id=mmFolder src='images/home.gif' style='MARGIN-RIGHT: 5px'>");
    stbTable.append("<FONT class=treestyle id=mTitle >" + "信息管理"+ "</FONT>");
    stbTable.append("</DIV>");
    
  //  stbTable.append("<DIV id=Child style='DISPLAY: block'>");
    ///循环类别,判断当有子类别的时候展开数
     for(int i=0;i<infolist1.size();i++)
     {
      wic = (WcmInfoclass)infolist1.get(i);
      String infoclassname = wic.getInfoclassname();
      String classid=wic.getInfoclassid();
      //System.out.println("classid="+classid);
            stbTable.append("<DIV id=Parent>");
            stbTable.append("<A class=treestyle id=a οnclick=mExpandIE(Child"+classid+",'last',Tree"+classid+",Folder"+classid+") target=_self>");
               stbTable.append("<IMG align=absMiddle border=0 id=Tree"+classid+" src='images/Tplus.gif'>");
            stbTable.append("<IMG align=absMiddle border=0 id=Folder"+classid+"  src='images/folder3.gif' style='MARGIN-RIGHT: 5px'>");
            stbTable.append("<font id=last style='cursor:hand;padding:1px'>");
            stbTable.append(infoclassname +"</font></A></DIV>");
                   
            stbTable.append("<DIV id=Child"+classid+" style='DISPLAY: none'>");
            stbTable.append("<table>");
            stbTable.append(sb+"</table>");
            stbTable.append("</DIV>");
                }
      stbTable.append("</DIV>");
    } catch(Exception ex)
    {
     System.out.println(ex.getMessage());
    }
                     
          return stbTable.toString();
      }


}
在就是下面的一个js,别看短我可是想了很长时间才完成的,主要难点就是控制图片转换上

主要是学习,自己还要加一些东西才能跑通

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/WEB-INF/tag.tld" prefix="s"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>

  <title>My JSP 'DayUp.jsp' starting page</title>
  <SCRIPT language=javascript>

 
 function mExpandIE(obj1,obj2,obj3,obj4) {

var child;
 var ExpandChild = eval(obj1 );
    if (obj2 != "top") {
  ExpandTree = eval(obj3 );
  ExpandFolder = eval( obj4 );
 }
 
 if (ExpandChild.style.display == "none") {
  ExpandChild.style.display = "block";
       
            if (obj2 == "last")
            { ExpandTree.src = "images/Lminus.gif"; }
   else { ExpandTree.src = "images/Tminus.gif"; }
   ExpandFolder.src = "images/openfolder3.gif"; 
  
 
 }else{
  ExpandChild.style.display = "none";
       
         if (obj2 == "last")
          { ExpandTree.src = "images/Lplus.gif"; }
   else { ExpandTree.src = "images/Tplus.gif"; }
   ExpandFolder.src = "images/folder3.gif";
  
  
 }
}
 
 </SCRIPT>

 </head>

 <body>
  标签:
  <br>
  <s:Menutree />

 </body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值