前不久,项目中需要使用到树,本来是使用的是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的。呵呵
分享到:
- 2008-08-04 09:56
- 浏览 3682
- 评论(3)
- 论坛回复 / 浏览 (3 / 6419)
- 查看更多
相关推荐
在这个“xloadtree开发动态树(ajax+servlet 不需配置数据库)”项目中,开发者提供了一个简化版的解决方案,免去了配置数据库的繁琐步骤。 首先,让我们理解什么是xLoadTree。xLoadTree是一款JavaScript库,它专门...
4. **数据源与异步加载**:`xloadTree`支持从服务器端异步加载数据,这可能是通过AJAX请求实现的。开发者可以配置URL和参数,当用户展开某个节点时,组件会自动发送请求获取该节点的子节点数据。这种方式减少了初始...
通过上述内容可以看出,利用AJAX技术结合xLoadTree库可以方便地实现实时更新目录树的功能,大大提升了Web应用的用户体验。同时,在实际开发过程中还需要注意细节处理,如数据格式的选择、服务器端响应设置以及浏览器...
"xloadtree"是这种动态树实现的一个实例,专门用于解决大数据量树生成的问题。 动态树的核心思想是分页和懒加载。在用户滚动到树的底部或者点击展开某个节点时,才向服务器请求下一部分数据。这种方式避免了初始...
标题 "JS 动态树 异步加载树 xloadtree WebFXLoadTree" 指的是在JavaScript中实现的一种特定的树形结构组件,它具备动态加载和异步数据获取的功能。这种技术常用于构建大型数据集的层级展示,如文件系统、组织结构或...
4. 文件结构:压缩包内的"xTree"和"xloadtree"文件可能分别代表了xtree的基本实现和xloadtree的扩展版本,其中xloadtree可能包含了额外的代码或配置来实现Ajax加载、复选和单选功能。 在实际应用中,开发人员需要...
`xloadtree`是一个专门用于实现动态Ajax树视图的工具,它能够帮助开发者高效地展示层级结构的数据,比如组织架构、文件系统或者复杂的分类信息。在这个例子中,我们将深入探讨`xloadtree`的工作原理以及如何使用它来...
XLoadTree是一个基于Java、XML、JSP和Ajax技术构建的组件,主要用于在Web应用程序中实现动态加载和展示树形结构数据。它巧妙地结合了这些技术,提供了高效、交互性强的用户界面,尤其适用于数据层次结构复杂的应用...
xLoadTree是一款基于JavaScript实现的树形结构展示组件,常用于网页中展示层级关系的数据,如文件系统、组织结构等。它提供了动态加载数据、节点展开与折叠、节点操作等功能。 2. **Checkbox和Radio**: - **...
这种机制利用了 AJAX(异步 JavaScript 和 XML)技术,实现了在不刷新整个页面的情况下加载和更新数据。 **数据模型的实时更新** 为了支持动态加载,xTree 需要能够处理运行时数据模型的变化。Emil 添加了对这一...
在这里,`ajax`用于向服务器发送请求,获取树形结构的子节点数据,然后将这些数据插入到当前的树结构中,从而实现动态加载的效果。`ajax`的优势在于提高了用户体验,因为用户可以在不打断当前操作的情况下加载更多...
`xtree`和`dtree`是早期的JavaScript实现的树形控件,它们通常用于客户端渲染,虽然能够实现基本的树状展示,但在处理复杂数据和性能优化方面可能不如`xLoadTree`。`xLoadTree`结合了服务器端和客户端的优势,通过...
XLoadTree是一个基于JavaScript和XML的优秀AJAX树控件,允许异步加载数据。引入必要的脚本文件后,可以创建一个能够动态加载数据的树形菜单。例如: ```html <!-- 引入xtree script file --> ...
xloadTree.zip是一个压缩包,包含了用于实现动态加载树形结构数据的JavaScript文件和相关示例。在网页应用中,特别是在处理大量数据时,动态加载(也称为按需加载或懒加载)是一种优化性能的有效方法,因为它只在...
JSP 是一种用于动态生成 web 内容的服务器端技术,而 AJAX 则用于客户端的异步数据交换,两者结合可以实现无刷新的树结构更新。这种树状菜单可能常用于网站导航,允许用户在不刷新整个页面的情况下展开、折叠和选择...
2. 引入JavaScript文件:通过`<script>`标签引入xtree.js,这是实现树形菜单功能的核心文件。 3. 编程创建树结构:使用`WebFXTree`和`WebFXTreeItem`类创建菜单的根节点和子节点,并设置每个节点的动作(action)和...
XLOADTREE可能提供了API或者库,使得开发者可以方便地添加、删除、展开或折叠树节点,同时支持异步加载数据,即当用户滚动或展开新分支时,才从服务器获取相应级别的数据。 动态加载的关键在于它的懒加载机制。这种...
【新版动态加载树形目录源码及详细说明xtree2.0】是一个基于Ajax技术的树形目录组件,它能够实现动态加载XML文件或数据流,以构建灵活且高效的导航结构。这个组件对于大型网站或者有层级关系的数据展示非常有用,...
在描述中提到的“xloadtree做的”,可能是XoadTree的一个实例或特定用法,表示使用这个库可以轻松实现异步加载树的功能,而不是像网络上某些信息所暗示的那样复杂。这表明XoadTree设计得相当用户友好,简化了开发者...