您的位置:首页 > Web前端 > JavaScript

JSP 实现动态树形菜单

2009-08-19 20:01 477 查看
使用MYSQL

数据库名gong

表名 menuone 字段 id,firstmenu

menutwo 字段 id,secondmenu,firstmenu

创建WEB 项目

创建包com.xgong.model其中创建类Menuone和Menutwo

package com.xgong.model;

public class Menuone {
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstmenu() {
return firstmenu;
}
public void setFirstmenu(String firstmenu) {
this.firstmenu = firstmenu;
}
private int id;
private String firstmenu;
}


package com.xgong.model;

public class Menutwo {
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getSecondmenu() {
return secondmenu;
}
public void setSecondmenu(String secondmenu) {
this.secondmenu = secondmenu;
}
public int getFirstmenu_id() {
return firstmenu_id;
}
public void setFirstmenu_id(int firstmenu_id) {
this.firstmenu_id = firstmenu_id;
}
private int id;
private String secondmenu;
private int firstmenu_id;
}


创建包com.xgong.dao其中创建类MenuDao

package com.xgong.dao;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.xgong.model.Menuone;
import com.xgong.model.Menutwo;
import com.xgong.pub.DBConnection;

public class MenuDao {
public List<Menuone> getFirstMenus(){
Connection conn = DBConnection.getConnection();
String sql= "select * from menuone";
QueryRunner qr = new QueryRunner();
List<Menuone> list = null;
try {
list = (List)qr.query(conn,sql,new BeanListHandler(Menuone.class));
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public Integer getFirstmenusID(String firstmenu){
Connection conn = DBConnection.getConnection();
String sql= "select id from menuone where firstmenu='"+firstmenu+"'";
QueryRunner qr = new QueryRunner();
Integer id = new Integer(null);
try {
id = (Integer) qr.query(conn,sql,new BeanListHandler(Integer.class));
} catch (SQLException e) {
e.printStackTrace();
}
return id;
}
public List<Menutwo> getSecondMenus(Integer firstmenu_id){
Connection conn = DBConnection.getConnection();
String sql = "select * from menutwo where firstmenu_id="+firstmenu_id;
QueryRunner qr = new QueryRunner();
List<Menutwo> list = null;
try {
list = (List)qr.query(conn,sql,new BeanListHandler(Menutwo.class));
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}


创建包com.xgong.pub其中创建类DBConnection

package com.xgong.pub;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnection {

//Mysql驱动
public static Connection getConnection(){
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost/gong?user=root&password=root";
conn = DriverManager.getConnection(url);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
}


创建JSP页面menubar.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="com.xgong.dao.MenuDao"%>
<%@ page import="com.xgong.model.Menuone"%>
<%@ page import="com.xgong.model.Menutwo"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<html>
<head>
<mce:script language='javascript'><!--
function showLay(divId)
{
var objDiv=eval(divId);
if(objDiv.style.display=='none')
{
eval('sp'+divId+'.innerHTML="-"');
objDiv.style.display='';
}
else
{
eval('sp'+divId+'.innerHTML="+"');
objDiv.style.display='none';
}
}
// --></mce:script>
</head>
<body>
<%
MenuDao dao = new MenuDao();
List<Menuone> list1 = dao.getFirstMenus();
%>
<c:forEach var="arcticl" items="<%=list1%>">
<%
Integer id = ((Menuone)pageContext.getAttribute("arcticl")).getId();
List<Menutwo> list11 = dao.getSecondMenus(id);
%>
<a href="#" mce_href="#" onclick='showLay("par${arcticl.id}")'><span id="sppar${arcticl.id}">+</span><c:out value="${arcticl.firstmenu}"/></a><br>
<div id='par${arcticl.id}' style="display:none;" mce_style="display:none;">
<c:forEach var="arcticl1" items="<%=list11%>">
<c:out value="${arcticl1.secondmenu}"/><br>
</c:forEach>
</div>
</c:forEach>
</body>
</html>


大功告成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: