dtree连接数据库动态生成树菜单

来源:互联网 发布:多尺度图像分割的算法 编辑:程序博客网 时间:2024/05/01 23:47

一、读取数据库中的数据返回list集合

package com.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;public class DaoTest {Connection con = null;public Connection getConnection() {Connection conn = null;String url = "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=gbk";String user = "root";String password = "admin";try {if (conn == null) {Class.forName("com.mysql.jdbc.Driver").newInstance();conn = DriverManager.getConnection(url, user, password);}} catch (Exception e) {System.out.println("连接失败");return null;} finally {url = null;user = null;password = null;}return conn;}public ArrayList<Nodes> getNodeInfo() {String sql = "select nodeId ,parentId ,hrefAddress ,nodeName from tree_table order by id ";PreparedStatement pre = null;Connection conn = null;conn = getConnection();ResultSet rs = null;ArrayList<Nodes> list = new ArrayList<Nodes>();try {pre = conn.prepareStatement(sql);rs =pre.executeQuery();while (rs.next()){Nodes node = new Nodes();node.setHrefAddress(rs.getString("hrefAddress"));node.setNodeId(rs.getString("nodeId"));node.setParentId(rs.getString("parentId"));node.setNodeName(rs.getString("nodeName"));list.add(node);}rs.close();pre.close();conn.close();} catch (SQLException e) {e.printStackTrace();}finally{ pre = null; conn = null; rs = null;}        return list;}}


 

二、javabean的节点

package com.dao;public class Nodes {private int id;private String nodeId;private String parentId;private String hrefAddress;private String nodeName;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getNodeId() {return nodeId;}public void setNodeId(String nodeId) {this.nodeId = nodeId;}public String getParentId() {return parentId;}public void setParentId(String parentId) {this.parentId = parentId;}public String getHrefAddress() {return hrefAddress;}public void setHrefAddress(String hrefAddress) {this.hrefAddress = hrefAddress;}public String getNodeName() {return nodeName;}public void setNodeName(String nodeName) {this.nodeName = nodeName;}}


 

三、创建一个Serlvet 来生成xml文件.

          注意: response.setContentType("text/xml;charset=utf-8");

 

package com.handler;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.dao.DaoTest;import com.dao.Nodes;public class NodesPrint extends HttpServlet {private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {                 doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {           request.setCharacterEncoding("utf-8");           response.setContentType("text/xml;charset=utf-8");           PrintWriter out = response.getWriter();           DaoTest test = new DaoTest();       ArrayList<Nodes> list=  test.getNodeInfo();        if(list!=null&&list.size()>0){        out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");            out.println("<nodes>");        for(int i=0;i<list.size();i++){        Nodes node = list.get(i);        out.println("<node nodeId='"+node.getNodeId()+"' parentId='"+node.getParentId()+"' hrefAddress='"+node.getHrefAddress()+"'>"+node.getNodeName()+"</node>");        }        out.println("</nodes>");        }}}


 

五、将dtree.js 和dtree.css,jquery.js, img文件夹.放在WebRoot下面.(工程的根目录)

六、 编写我们的tree.jsp页面.

<%@ page language="java" pageEncoding="utf-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head>  <title>树形结构___ajax请求方式</title>  <script type="text/javascript" src="dtree.js"></script>  <script type="text/javascript" src="jquery.js"></script>  <link rel="stylesheet" href="dtree.css" type="text/css"></link>  <script type="text/javascript">   tree = new dTree('tree');//创建一个对象.   $.ajax({     <a href="/admin/blogs/350056/'NodesPrint'">url:'NodesPrint'</a>,     type:'post', //数据发送方式     dataType:'xml', //接受数据格式     error:function(json){             alert( "not lived!");       },    async: false ,//同步方式    success: function(xml){         $(xml).find("node").each(function(){         var nodeId=$(this).attr("nodeId");           var parentId=$(this).attr("parentId");          var hrefAddress=$(this).attr("hrefAddress");          var nodeName=$(this).text();         tree.add(nodeId,parentId,nodeName,hrefAddress,"","","","",false);                        });           }     });        document.write(tree);  </script> </head> <body> </body></html>



 

原创粉丝点击