|
最近,本人用梅花树写了一个动态的树结构,跟大家一起交流交流,代码如下:
Treedao.java
public class TreeDao extends HibernateEntityDao<Tree> {
ResultSet rp = null;
ResultSet rs = null;
ResultSet rt = null;
int ids = 0;
int pids = 0;
String sql = null;
public String getTree(String path, String tst) throws Exception {
System.out.println("开始构建树");
readCSV csv = new readCSV();
// tst="杭州";
Connection conn = csv.conn();
Statement stm = conn.createStatement();
if (tst.equals("所有用户组")) {
sql = "select * from tree";
} else {
sql = "select * from tree where txt='" + tst + "'";
}
ResultSet r = stm.executeQuery(sql);
String tre = null;
String tree = "tree";
String aa = "浙江教育资源网实名库";
String bb = "property";
int cc = 0;
int dd = 1;
tre += "\n" + tree + ".nodes[\"" + cc + "_" + dd + "\"]=\"";
tre += "text:" + aa + ";";
tre += "icon:" + bb + ";";
tre += "\"";
if (tst.equals("所有用户组")) {
int bob1 = 1;
int bob2 = 111;
String bobo = "教师日志管理";
String bo = "property";
String bp = "" + path + "logme.do?method=queryLog";
tre += "\n" + tree + ".nodes[\"" + bob1 + "_" + bob2 + "\"]=\"";
tre += "text:" + bobo + ";";
tre += "icon:" + bb + ";";
tre += "url:" + bp + ";";
tre += "\"";
}
while (r.next()) {
ids = Integer.parseInt(String.valueOf(r.getInt("id")));
pids = Integer.parseInt(String.valueOf(r.getInt("parentId")));
String txt = r.getString("txt");
String icon = r.getString("icon");
int data=Integer.parseInt(String.valueOf(r.getInt("data")));
String url = r.getString("url");
//int data=Integer.parseInt(r.getString("data"));
tre += "\n" + tree + ".nodes[\"" + pids + "_" + ids + "\"]=\"";
tre += "text:" + txt + ";";
tre += "icon:" + icon + ";";
if (url != null) {
tre += "url:" + path + "" + url
+ data+"";
}
tre += "\"";
tre += ";";
}
String sql2 = "select * from tree where parentId='" + ids + "'";
ResultSet rd = stm.executeQuery(sql2);
if (rd.next() == false) {
System.out.println("进入false");
Connection con = csv.conn();
Statement sta = con.createStatement();
rp = stm.executeQuery(sql);
while (rp.next()) {
pids = Integer.parseInt(String.valueOf(rp.getInt("parentId")));
}
String sql3 = "select * from tree where id='" + pids + "'";
rt = stm.executeQuery(sql3);
while (rt.next()) {
ids = Integer.parseInt(String.valueOf(rt.getInt("id")));
pids = Integer.parseInt(String.valueOf(rt.getInt("parentId")));
String txt = rt.getString("txt");
String icon = rt.getString("icon");
int data=Integer.parseInt(String.valueOf(rt.getInt("data")));
String url = rt.getString("url");
tre += "\n" + tree + ".nodes[\"" + pids + "_" + ids + "\"]=\"";
tre += "text:" + txt + ";";
tre += "icon:" + icon + ";";
if (url != null) {
tre += "url:" + path + "" + url
+ data + "";
}
tre += "\"";
tre += ";";
}
rs = stm.executeQuery(sql);
System.out.println("已经构建完毕");
} else {
rs = stm.executeQuery(sql2);
}
while (rs.next()) {
int id = Integer.parseInt(String.valueOf(rs.getInt("id")));
int pid = Integer.parseInt(String.valueOf(rs.getInt("parentId")));
String txt = rs.getString("txt");
String icon = rs.getString("icon");
int data=Integer.parseInt(String.valueOf(rs.getInt("data")));
String url = rs.getString("url");
tre += "\n" + tree + ".nodes[\"" + pid + "_" + id + "\"]=\"";
tre += "text:" + txt + ";";
tre += "icon:" + icon + ";";
if (url != null) {
tre += "url:" + path + "" + url
+ data+ "";
}
tre += "\"";
tre += ";";
}
System.out.println(tre);
return tre;
}
public String getAddress(String address) throws Exception{
String txt=null;
int adderss=Integer.parseInt(address);
readCSV csv = new readCSV();
Connection conn = csv.conn();
Statement stm = conn.createStatement();
String sql="select txt from tree where id="+adderss;
rs=stm.executeQuery(sql);
while(rs.next()){
txt=rs.getString("txt");
System.out.println("txt:"+txt);
}
return txt;
}
public int getID(String address)throws Exception{
int ids=0;
readCSV csv = new readCSV();
Connection conn = csv.conn();
Statement stm = conn.createStatement();
String sql="select id from tree where txt='"+address+"'";
rs=stm.executeQuery(sql);
while(rs.next()){
ids = Integer.parseInt(String.valueOf(rs.getInt("id")));;
}
return ids;
}
}
-----Test.jsp-----
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page contentType="text/html; charset=utf-8"%>
<%@page import="xxxxx.dao.TreeDao"%>//
//此处为url获取
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head>
<script language="JavaScript" src="scripts/MzTreeView10.js"></script>
<style>
A.MzTreeview
{
font-size: 9pt;
padding-left: 3px;
}
a:link {
color: #003399;
text-decoration: none;
}
a:visited {
color: 003399;
text-decoration: none;
}
a:hover {
color: #FF6600;
text-decoration: none;
}
a:active {
color: 003399;
text-decoration: none;
}
</style>
<script language="JavaScript">
var tree = new MzTreeView("tree");
// alert(MzTreeView.getTreeNode(MzTreeView.selectedNodeIndex).getAttribute("text"));
tree.icons["property"] ="book.gif";
tree.icons["book"] = "book.gif";
tree.icons["css"] = "book.gif";
tree.iconsExpand["book"] = "bookopen.gif"; //展开时对应的图片
tree.iconsExpand["property"] = "bookopen.gif";
tree.iconsExpand["css"] = "bookopen.gif";
tree.setIconPath("images/MzTreeView/"); //可用相对路径
<%
TreeDao Tdao=new TreeDao();
String tst=request.getAttribute("tst").toString();
String tree=Tdao.getTree(basePath,tst);
out.print(tree);
%>
tree.setURL("#");
tree.setTarget("main");
document.write(tree.toString()); //亦可用 obj.innerHTML = tree.toString();
</script>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>
<body>
</body>
</html>
请注意js树控件在下面附件中有下载 |
|