📄 statictree.java
字号:
package huayi.xt.staticTree;
import java.sql.*;
import javax.servlet.*;
public class staticTree {
huayi.gg.dbConn.dbConn DBbean=new huayi.gg.dbConn.dbConn();
String BMMC;
public void init(javax.servlet.jsp.JspWriter out,javax.servlet.http.HttpServletRequest request,javax.servlet.http.HttpServletResponse response,int lc[]) throws Exception {
out.println("<title>用jsp种树 静态</title>");
buildTree(out,0,0,lc);//初始调用
}
public void buildTree(javax.servlet.jsp.JspWriter out,int PID,int level,int lc[]) throws Exception
{ // 注:PID为0表示根结点
level++;
ResultSet rs1=DBbean.executeQuery("select * from T_QYJGSB where PID="+PID+" order by id");
int count=0; //count记录当前节点兄弟总数;
while(rs1.next()){count++;}
//out.print(count);
ResultSet rs=DBbean.executeQuery("select * from T_QYJGSB where PID="+PID+" order by id");
int turn=0; //turn记录当前节点排行;
while(rs.next()) {
turn++;
if (turn==count) { lc[level]=1; } else { lc[level]=0; } //lc数组作用:记录每个节点回溯到其起始祖先是否最后一个孩子,以决定画verline.gif或blank.gif或branch-end.gif
out.println("<nobr><div>");
for (int k=level+1;k<=14;k++) lc[k]=2;
for (int i=2;i<=level;i++)
{if (lc[i]==0) { out.print("<img src=\"image/verline.gif\"> ");}
else {if(lc[i-1]==0) { out.print("<img src=\"image/verline.gif\"> ");}
else if ((lc[i+1]!=1)&&(lc[i+1]!=0)) { out.print("<img src=\"image/branch-end.gif\"> "); }
else {out.print("<img src=\"image/blank.gif\"> ");}
}}
int a=rs.getInt("id");
String b=rs.getString("BMMC");
if(has_child(a)) { //非叶子节点情况
if(level==1) //根结点
{out.print("<img alt=\"展开\" style=\"cursor:hand;\" onclick=\"myClick3('"+a+"');\" id=\"img"+a+"\" src=\"image/minus-begin.gif\"> ");}
else if(lc[level]==1) //最后一个孩子
{out.print("<img alt=\"展开\" style=\"cursor:hand;\" onclick=\"myClick2('"+a+"');\" id=\"img"+a+"\" src=\"image/plus-end.gif\"> ");}
else //非最后一个孩子
{out.print("<img alt=\"展开\" style=\"cursor:hand;\" onclick=\"myClick('"+a+"');\" id=\"img"+a+"\" src=\"image/plus.gif\"> ");}
out.print("<img id=\"im"+a+"\" src=\"image/closedfold.jpg\"> <span onclick=\"myClick1('"+a+"');\" style=\"cursor:default;\" id=\"span"+a+"\"><a href='XT_JGSZ_xx2.jsp?id=" +a+"' target=iframe>"+b+"</a></span>");
if (level>=2) //初始页面时,2层以上部门隐藏
out.println("<div style=\"display:none;\" id=\"div"+a+"\">");
else out.println("<div style=\"display:block;\" id=\"div"+a+"\">");
buildTree(out,a,level,lc); //递归调用
out.println("</div>");
} else //叶子节点情况
{ResultSet rs2=DBbean.executeQuery("select BMBH from T_QYJGSB where id="+a);
while(rs2.next()){String BMBH=rs2.getString("BMBH");
if(level==1) //根结点
{out.print("<img src=\"image/minus-begin-only.gif\"> ");}
else if(lc[level]==1) //最后一个孩子
{out.print("<img src=\"image/minus-end.gif\"> ");}
else //非最后一个孩子
{out.print("<img src=\"image/minus.gif\"> ");}
out.print("<img src=\"image/ren.jpg\"> <span onclick=\"myClick1('"+a+"');\" style=\"cursor:default;\" id=\"span"+a+"\"><a href=\"XT_JGSZ_BMRY.jsp?BMBH=" +BMBH+"\" target='iframe'>"+b+"</a></span>");}
}
out.println("</div></nobr>");
}
rs.close();
rs=null;
}
private boolean has_child(int PID) throws Exception { //判断PID节点是否有孩子
ResultSet rs=DBbean.executeQuery("select * from T_QYJGSB where PID="+PID+" order by id");
return rs.next();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -