|
|
|
|
| 一个最简单的静态树的代码,使用递规完成 <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>
<%@ include file="/pb/connpool1.jsp" %>
<jsp:useBean id="userinfo" scope="session" class="pb.userinfo.UserInfo"/>
<link rel="stylesheet" href="/sssoa/css/style1.css" type="text/css">
<%!
class tree {
public tree()throws Exception{//构造函数主要是得到已经分配了的模块
}
public void buildTree(Connection conn,javax.servlet.jsp.JspWriter out,String parentid,int level,String user_id) throws Exception {
level++;
Statement stmt = conn.createStatement ();
String sql="select distinct m.modbh as modbh,m.modpro as modpro,m.modmc as modmc from t_pf_power p,t_pf_mod m,t_pf_role r,t_pf_roleallot a where (p.t_pf_user_id=""+user_id+"" and p.lx=3) or ((p.t_pf_user_id_temp=""+user_id+"" and p.lx=1 and p.t_pf_mod_modbh=m.modbh and term>sysdate and startdate<sysdate) or (a.t_pf_user_bh=""+user_id+"" and a.t_pf_role_id=p.t_pf_role_id and p.t_pf_mod_modbh=m.modbh and p.lx=0) or m.modpro!="2") and modbh_p=""+parentid+"" order by modbh";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {
out.println("<div>");
for(int i=0;i<level-1;i++) {
out.print(" ");
}
if(!rs.getString("modpro").equals("2")) {
out.print("<img alt=\"展开\" style=\"cursor:hand;\" onclick=\"myClick(""+rs.getString("modbh")+"");\" id=\"img"+rs.getString("modbh")+"\" src=\"image/plus.gif\"> ");
out.print("<span style=\"cursor:hand;\" onclick=\"myClick(""+rs.getString("modbh")+"");\">");
out.print(rs.getString("modmc"));
out.print("</span>");
out.println("<div style=\"display:none;\" id=\"div"+rs.getString("modbh")+"\">");
buildTree(conn,out,rs.getString("modbh"),level,user_id); //递归调用
out.println("</div>");
} else{
out.print("<img src=\"image/page.gif\"> <span onMouseMove=\"className = "clsMouseOver";\" onMouseOver=\"className = "clsCurrentHasFocus";\" onMouseOut=\"className = "clsCurrentHasNoFocus";\" style=\"cursor:default;\" >");
out.print("<a href=forward.jsp?modbh="+rs.getString("modbh")+" target=\"main\">");
out.print(rs.getString("modmc")+"</a></span>");
}
out.println("</div>");
}
rs.close();
stmt.close();
rs=null;
}
}
%>
<script language="JavaScript"><!--这段js为了实现树的展开和关闭的效果-->
function myClick(id) {
eval("var div=div"+id);
eval("var img=img"+id);
div.style.display=div.style.display!="none"?"none":"block";
img.src=div.style.display!="none"?"image/minus.gif":"image/plus.gif";
img.alt=div.style.display!="none"?"关闭":"展开";
}
</script>
<html>
<body bgcolor="#6699FF">
<table>
<tr><td height="260" valign="top">
<%
String user_id=userinfo.user_id;
Connection conn = ods.getConnection ();
tree myTree=new tree();
myTree.buildTree(conn,out,"o",0,user_id);%>
<script language="JavaScript">
myClick("oo");
</script>
<% conn.close();
%>
</td></tr>
</table>
</body>
</html>
|
|
|