`
木易有峰
  • 浏览: 51048 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

XloadTree实现Ajax树

    博客分类:
  • java
阅读更多
前不久,项目中需要使用到树,本来是使用的是JSFmyfaces的tree2控件(项目是JSF框架的),但是最近,可能由于代码问题,树经常报错(数组过长),刷新就可以了,故想换个树,在G上搜索一翻,发现XLOADTREE比较不错。就先写了个Demo,以下是代码:
JSP
<%-- 
    Document   : index
    Created on : 2008-7-31, 15:31:04
    Author     : 木易有峰
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script   type="text/javascript"   src="resources/xtree.js"></script>
        <script   type="text/javascript"   src="resources/xmlextras.js"></script>
        <script   type="text/javascript"   src="resources/xloadtree.js"></script>
        <link   type="text/css"   rel="stylesheet"   href="resources/xtree.css"   />
        <title>JSP Page</title>
    </head>
    <body>

        <script type="text/javascript">
            /// XP Look
            webFXTreeConfig.rootIcon        = "images/xp/folder.png";
            webFXTreeConfig.openRootIcon    = "images/xp/openfolder.png";
            webFXTreeConfig.folderIcon        = "images/xp/folder.png";
            webFXTreeConfig.openFolderIcon    = "images/xp/openfolder.png";
            webFXTreeConfig.fileIcon        = "images/xp/file.png";
            webFXTreeConfig.lMinusIcon        = "images/xp/Lminus.png";
            webFXTreeConfig.lPlusIcon        = "images/xp/Lplus.png";
            webFXTreeConfig.tMinusIcon        = "images/xp/Tminus.png";
            webFXTreeConfig.tPlusIcon        = "images/xp/Tplus.png";
            webFXTreeConfig.iIcon            = "images/xp/I.png";
            webFXTreeConfig.lIcon            = "images/xp/L.png";
            webFXTreeConfig.tIcon            = "images/xp/T.png";
            var rti;
            var tree = new WebFXTree("行政区划");
            tree.add(new WebFXLoadTreeItem("安徽省", "GetCity"));
            document.write(tree);
        </script>
    </body>
</html>

Servlet
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.database.common;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.database.model.Area;
import org.database.treeList.AreaList;

/**
 *
 * @author 木易有峰
 */
public class GetCity extends HttpServlet {
   
    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/xml;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            out.println("<tree>");
            AreaList menus = new AreaList();
            List list = menus.getCityAreas();
            Area area;
           for (int i = 0; i < list.size(); i++) {
                area = (Area) list.get(i);
                out.println("<tree text='" + area.getQymc() + "'>");
                if(!area.equals(null)){
                    List alist = menus.getCountAreas(area.getQybm().substring(0,4));
                    for(int j = 0; j < alist.size(); j ++){
                        Area a = (Area)list.get(j);
                        out.println("<tree text='" + a.getQymc() + "' />");
                    }
                }
                out.print("</tree>");
            }
            out.println("</tree>");
        } finally { 
            out.close();
        }
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}

Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd">
    <servlet>
        <servlet-name>GetCity</servlet-name>
        <servlet-class>org.database.common.GetCity</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>GetCity</servlet-name>
        <url-pattern>/GetCity</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

下面是工程,netbeans的。呵呵
  • D_AREA.zip (1.6 KB)
  • 描述: 数据库脚本
  • 下载次数: 583
分享到:
评论
3 楼 木易有峰 2009-06-17  
vtrtbb 写道

不知道是不是一次加载,要是一次加载,数量大了就慢了!

呵呵 这个只适合数据量小的菜单,如果大的话 应该做成动态加载数据
2 楼 vtrtbb 2009-06-12  
不知道是不是一次加载,要是一次加载,数量大了就慢了!
1 楼 木易有峰 2008-08-04  
忘记上传数据库的SQL了。。

相关推荐

    xloadtree开发动态树(ajax+servlet 不需配置数据库)

    在这个“xloadtree开发动态树(ajax+servlet 不需配置数据库)”项目中,开发者提供了一个简化版的解决方案,免去了配置数据库的繁琐步骤。 首先,让我们理解什么是xLoadTree。xLoadTree是一款JavaScript库,它专门...

    xloadTree开发动态树

    4. **数据源与异步加载**:`xloadTree`支持从服务器端异步加载数据,这可能是通过AJAX请求实现的。开发者可以配置URL和参数,当用户展开某个节点时,组件会自动发送请求获取该节点的子节点数据。这种方式减少了初始...

    ajax实现目录树

    通过上述内容可以看出,利用AJAX技术结合xLoadTree库可以方便地实现实时更新目录树的功能,大大提升了Web应用的用户体验。同时,在实际开发过程中还需要注意细节处理,如数据格式的选择、服务器端响应设置以及浏览器...

    动态树例子 xloadtree

    "xloadtree"是这种动态树实现的一个实例,专门用于解决大数据量树生成的问题。 动态树的核心思想是分页和懒加载。在用户滚动到树的底部或者点击展开某个节点时,才向服务器请求下一部分数据。这种方式避免了初始...

    JS 动态树 异步加载树 xloadtree WebFXLoadTree

    标题 "JS 动态树 异步加载树 xloadtree WebFXLoadTree" 指的是在JavaScript中实现的一种特定的树形结构组件,它具备动态加载和异步数据获取的功能。这种技术常用于构建大型数据集的层级展示,如文件系统、组织结构或...

    xloadtree

    4. 文件结构:压缩包内的"xTree"和"xloadtree"文件可能分别代表了xtree的基本实现和xloadtree的扩展版本,其中xloadtree可能包含了额外的代码或配置来实现Ajax加载、复选和单选功能。 在实际应用中,开发人员需要...

    xloadtree 例子

    `xloadtree`是一个专门用于实现动态Ajax树视图的工具,它能够帮助开发者高效地展示层级结构的数据,比如组织架构、文件系统或者复杂的分类信息。在这个例子中,我们将深入探讨`xloadtree`的工作原理以及如何使用它来...

    xloadtree.rar_ xloadtree_java xml_jsp xml_xloadtree_xloadtree aj

    XLoadTree是一个基于Java、XML、JSP和Ajax技术构建的组件,主要用于在Web应用程序中实现动态加载和展示树形结构数据。它巧妙地结合了这些技术,提供了高效、交互性强的用户界面,尤其适用于数据层次结构复杂的应用...

    修改xloadtree 支持checkbox radio 鼠标右键菜单

    xLoadTree是一款基于JavaScript实现的树形结构展示组件,常用于网页中展示层级关系的数据,如文件系统、组织结构等。它提供了动态加载数据、节点展开与折叠、节点操作等功能。 2. **Checkbox和Radio**: - **...

    xloadtree基本使用

    这种机制利用了 AJAX(异步 JavaScript 和 XML)技术,实现了在不刷新整个页面的情况下加载和更新数据。 **数据模型的实时更新** 为了支持动态加载,xTree 需要能够处理运行时数据模型的变化。Emil 添加了对这一...

    xtree+checkbox+radio,xloadtree+checkbox+radio

    在这里,`ajax`用于向服务器发送请求,获取树形结构的子节点数据,然后将这些数据插入到当前的树结构中,从而实现动态加载的效果。`ajax`的优势在于提高了用户体验,因为用户可以在不打断当前操作的情况下加载更多...

    asp.net 生成动态树

    `xtree`和`dtree`是早期的JavaScript实现的树形控件,它们通常用于客户端渲染,虽然能够实现基本的树状展示,但在处理复杂数据和性能优化方面可能不如`xLoadTree`。`xLoadTree`结合了服务器端和客户端的优势,通过...

    Java项目中树形菜单的创建PPT课件.ppt

    XLoadTree是一个基于JavaScript和XML的优秀AJAX树控件,允许异步加载数据。引入必要的脚本文件后,可以创建一个能够动态加载数据的树形菜单。例如: ```html &lt;!-- 引入xtree script file --&gt; ...

    xloadTree.zip

    xloadTree.zip是一个压缩包,包含了用于实现动态加载树形结构数据的JavaScript文件和相关示例。在网页应用中,特别是在处理大量数据时,动态加载(也称为按需加载或懒加载)是一种优化性能的有效方法,因为它只在...

    个人收集4种漂亮的javascript+dhtml动态树控件

    JSP 是一种用于动态生成 web 内容的服务器端技术,而 AJAX 则用于客户端的异步数据交换,两者结合可以实现无刷新的树结构更新。这种树状菜单可能常用于网站导航,允许用户在不刷新整个页面的情况下展开、折叠和选择...

    java如何在在页面中实现树形菜单.pdf

    2. 引入JavaScript文件:通过`&lt;script&gt;`标签引入xtree.js,这是实现树形菜单功能的核心文件。 3. 编程创建树结构:使用`WebFXTree`和`WebFXTreeItem`类创建菜单的根节点和子节点,并设置每个节点的动作(action)和...

    动态加载树

    XLOADTREE可能提供了API或者库,使得开发者可以方便地添加、删除、展开或折叠树节点,同时支持异步加载数据,即当用户滚动或展开新分支时,才从服务器获取相应级别的数据。 动态加载的关键在于它的懒加载机制。这种...

    新版动态加载树形目录源码及详细说明xtree2.0

    【新版动态加载树形目录源码及详细说明xtree2.0】是一个基于Ajax技术的树形目录组件,它能够实现动态加载XML文件或数据流,以构建灵活且高效的导航结构。这个组件对于大型网站或者有层级关系的数据展示非常有用,...

    异步加载树例子 xoadtree做的

    在描述中提到的“xloadtree做的”,可能是XoadTree的一个实例或特定用法,表示使用这个库可以轻松实现异步加载树的功能,而不是像网络上某些信息所暗示的那样复杂。这表明XoadTree设计得相当用户友好,简化了开发者...

Global site tag (gtag.js) - Google Analytics