我想这叫树形结构可能比菜单容易被人理解吧,我见过一个用javascript和xml做的,Http://www.chinaok.net/ 蓝蝶精品网上有,你可以看一下
解决方案 »
- SSH项目迁移至JBoss,改成Struts+EJB项目总结
- Java怎么移动文件夹里的文件到指定文件?
- 面试的时候那个技术说面向对象语言的三个特征是:继承,封装,抽象。还要我回来查查资料。郁闷了!!!
- 关于全局静态对象的问题
- 有谁了解东软电信事业部的情况
- jsp里点击按钮转新页面怎么实现?
- ====有点难度的问题====
- 遇到个问题,很头疼,以前清下项目就ok了,现在什么都不解决了,求大神指点~
- quanzhen001,你是男的女的
- 连接weblogic池里的connection,说The pool driver only works within the WebLogic server,这么个意思
- 小弟刚学JSP三天的菜问题,来着都有分!
- 在window2000 server下面安装tomcat遇到问题,请各位帮忙
下载jspSmartMenu
http://www.csdn.net/develop/read_article.asp?id=17818
网上有很多实例,用www.baidu.com搜索一下
那个东东怎么玩啊
取下个树形菜单,那个挺不错,纯javascript编的,程序十分精巧!
如果你不想展开前面的加号,就选构造函数为
createTree(tree);
我做不下去了! 楼上的下面有一个(有图但不影响你看):(不要结贴看看我的问题)
数据库(表)
id parentid messag 说明
<%@page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@page import="java.util.*"%>
<%!//方便起见这里就不写成javabean了
class cn {//连接数据库,这里以MS-SQL为例
String jdbcDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";//jdbc驱动
String connectionString="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=sunmoon";//数据库连接字符串
String user="sa";//数据库用户名
String pass="sa";//数据库密码
Connection conn=null;
ResultSet rs=null;public cn() {
try {
Class.forName(jdbcDriver);
} catch(ClassNotFoundException e) {
System.err.println(e.toString());
}
}public ResultSet executeQuery(String sql) {
rs=null;
try {
conn=DriverManager.getConnection(connectionString,user,pass);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery(sql);
}
catch(SQLException e) {
System.err.println(e.toString());
}
return rs;
}public void executeUpdate(String sql) {
try {
conn=DriverManager.getConnection(connectionString,user,pass);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt.executeUpdate(sql);
}
catch(SQLException e) {
System.err.println(e.toString());
}
}
}class tree {
cn conn=new cn();
public void init(javax.servlet.jsp.JspWriter out,javax.servlet.http.HttpServletRequest request, String username) throws Exception {
out.println("<title>系统管理员功能</title>");
buildTree(out,0,0,username);//初始调用
}
public void buildTree(javax.servlet.jsp.JspWriter out,int parentid,int level,String username) throws Exception {
level++;
ResultSet rs=conn.executeQuery("select * from admin_tree where parentid="+parentid+" order by id");
// ResultSet rs2=conn.executeQuery("select * from parentRights where username='sensory' order by parentId");
//select * from tree where parentid in (select parentId from parentRights )order by id
while(rs.next()) {
int id;
id=rs.getInt("id");
String idStr = String.valueOf(id); //int转化为String
//String userName="a"; //替换为session名
ResultSet rs2=conn.executeQuery("select * from admin_function order by parentId");
if (!rs2.next())
//if((rs.getInt("id")!=6) && (rs.getInt("id")!=10)) //权限管理
{
out.println("<div>");
for(int i=0;i<level-1;i++)
out.print("<img src=\"white.gif\"> ");
out.print("<input TYPE=checkbox name=fruit VALUE='"+id+"'>");
if(has_child(rs.getInt("id")))
{
out.print("<img alt=\"展开\" style=\"cursor:hand;\" onclick=\"myClick('"+rs.getInt("id")+"');\" id=\"img"+rs.getInt("id")+"\" src=\"plus.gif\"> <img id=\"im"+rs.getInt("id")+"\" src=\"closedfold.gif\"> ");
out.print("<span onclick=\"myClick1('"+rs.getInt("id")+"');\" style=\"cursor:default;\" id=\"span"+rs.getInt("id")+"\">"+rs.getString("message")+" </span>");
out.println("<div style=\"display:none;\" id=\"div"+rs.getInt("id")+"\">");
buildTree(out,rs.getInt("id"),level,username);//递归调用
out.println("</div>");
}
else
out.print("<img src=\"dot.gif\"><span onclick=\"myClick1('"+rs.getInt("id")+"');\" style=\"cursor:default;\" id=\"span"+rs.getInt("id")+"\">"+rs.getString("message")+" </span>");
out.println("</div>");
}
}
rs.close();
rs=null;
}private boolean has_child(int parentid) throws Exception {
ResultSet rs=conn.executeQuery("select * from admin_tree where parentid="+parentid+" order by id");
return rs.next();
}
}
%>
<!--以上代码可以写成javabean-->
<script language="JavaScript"><!--这段js为了实现树的展开和关闭的效果-->
<!--
function myClick(id) {
eval("var div=div"+id);
eval("var img=img"+id);
eval("var im=im"+id);
div.style.display=div.style.display!="none"?"none":"block";
img.src=div.style.display!="none"?"minus.gif":"plus.gif";
im.src=div.style.display!="none"?"openfold.gif":"closedfold.gif";
img.alt=div.style.display!="none"?"关闭":"展开";
}
function myClick1(id) {
//document.form1.parentid.value=id; admin/sysManage.jsp
if (id==101)
{
//window.open('../admin/userManage/userRun.jsp','message','scrollbars=auto,status=yes,toolbar=yes,menubar=yes,location');
}
if (id==102) {
//window.open('../admin/userManage/userFunction.jsp','message','scrollbars=auto,status=yes,toolbar=yes,menubar=yes,location');
}
if (id==8001)
{
//window.open('../admin/database/backup.jsp','message','scrollbars=auto,status=yes,toolbar=yes,menubar=yes,location');
} if (id==8002)
{
//window.open('../admin/database/restore.jsp','message','scrollbars=auto,status=yes,toolbar=yes,menubar=yes,location');
}
else
{
}
}
//-->
</script>
<html>
//加<form>就不可以 我想用表单提交一下!不行!郁闷!<table align="left">
<tr>
<td height="300" valign="top">
<%
String username = (String) session.getValue("userid");
tree myTree=new tree();
myTree.init(out,request,username);
%>
</td>
</tr>
<tr><strong><font size="1">系统功能</font></strong>
</tr></table></html>