web中tree的应用非常广泛,动态tree的实现也是多种多样,这里主要是写下我用mztreeview(梅花雪大侠所写)的jsp例子.
梅大侠的文档中给了个asp的例子,但是在jsp中如何应用呢?熟知asp和jsp的人可以很好的把程序移植,但是对于不是同时很熟悉这2中语言的人来说,有一个jsp例子,会方便很多.
1.首先,下载控件,MzTreeView10
2.(最好)将控件放到工程目录下
3,建立数据库
create table tree
(
id int primary key,
parentId int,
text varchar(50),
hint varchar(100),
icon varchar(20),
data varchar(20),
url varchar(50),
target varchar(20),
method varchar(50)
)
然后往数据库中插入数据,
注意:mztreeview默认一个须根节点,其父节点值是0
4,做数据服务层
这个是关键,树的动态生成一半要靠它(另一半借助javascript代码),这个类的主要方法是要生成要生成树的数据所需的数据,其中Contants.treeName是个常量,这个要与界面上定义的mztreeview对象的名称一致
import java.sql.ResultSet;
import java.sql.SQLException;
import com.xaccp.qingyun.db.DBManager;
import com.xaccp.qingyun.entity.Contants;
import com.xaccp.qingyun.exception.MyException;
import com.xaccp.qingyun.factory.DBFactory;
import java.util.*;
public class TreeService {
DBManager dm=null;
public String getTree() throws MyException
{
//DBFactory是我写的一个工厂类,DBManager是个底层数据库操纵类
//用到的几个方法根据方法名也能理解,就不多说了
dm=DBFactory.createDBManager();
String sql="select * from shelf";
try {
dm.createPreparedStatement(sql);
ResultSet rs=dm.executeQueryPrepareStatement();
String tree="";
while(rs.next())
{
String id=String.valueOf(rs.getInt("id"));
String pid=String.valueOf(rs.getInt("parentId"));
String text=rs.getString("text");
String hint=rs.getString("hint");
String url=rs.getString("url");
String target=rs.getString("target");
tree +="\n"+Contants.treeName+".nodes[\""+pid+"_"+id+"\"]=\"";
//这里我只做了几个判断,其他的自己做判断就行
if(text !=null && text.trim()!="")
{
tree +="text:"+text+";";
}
if(hint!=null && hint.trim().equals(""))
{
tree +="hint:"+hint+";";
}
if(url!=null && url.trim().equals(""))
{
tree +="url:"+url+";";
}
if(target!=null && target.trim().equals(""))
{
tree +="target:"+target+";";
}
tree +="\"";
}
return tree;
} catch (Exception e) {
throw new MyException("can't create tree"); //MyException是我定义的异常类
}
finally
{
dm.closeDB();
}
}
5,做界面层
这时候有几点要非常注意,1,编码一定要用GBK(这个我尝试了好久,只有GBK才能正常显示)
2.树的名字要跟Contants.treeName常量的值一样
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<jsp:directive.page import="com.xaccp.qingyun.bean.TreeService"/>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head>
<title>梅花雪中文网 - 网页脚本控件集 MzTreeView10</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="author" content="黄方荣(meizz·梅花雪)://www.meizz.com">
<script language="JavaScript" src="MzTreeView10/MzTreeView10.js"></script>
<!--link href="http://www.meizz.com/Scripts/Global.css" type="text/css" rel="stylesheet"-->
<style>
A.MzTreeview
{
font-size: 9pt;
padding-left: 3px;
}
</style>
</head>
<body bgcolor="#FFFFDB" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<SCRIPT LANGUAGE="JavaScript">
<!--
window.tree = new MzTreeView("tree");
tree.icons["property"] = "property.gif";
tree.icons["css"] = "collection.gif";
tree.icons["book"] = "book.gif";
tree.iconsExpand["book"] = "bookopen.gif"; //展开时对应的图片
tree.setIconPath("MzTreeView10/"); //可用相对路径
<%
TreeService ts=new TreeService();
String tree=ts.getTree();
out.print(tree);
%>
tree.setURL("#");
tree.setTarget("MzMain");
document.write(tree.toString()); //亦可用 obj.innerHTML = tree.toString();
//-->
</SCRIPT>
</body>
</html>
6,到此一棵动态,无限级别的动态树就在jsp中生成了,下面是效果图
注:mztreeview版权归梅花雪大侠所有
分享到:
相关推荐
myeclipse工具开发的简单web项目,下载后解压导入到myecllipse中,可直接运行,查看结果。(详见readme.txt) 项目功能:读取指定服务器目录下文件及文件目录显示在web页面树中。
AjaxTree jsptree MzTreeView xtree树形菜单代码集锦,其中有两个例子是用在JSP环境下的WEB Tree,其余是基于js的树形菜单,一共有5款树状菜单代码,不管是学习参考或是使用都是值得下载收藏的。
"mztreeview"是一个专用于创建树形菜单的软件组件,尤其在网页开发中常见,主要用于构建层次结构清晰、交互性强的导航系统。这个组件的名字可能来源于“梅花”(mz)与“tree view”(树视图)的组合,暗示了其设计...
【MzTreeView10】是一款经典的Windows控件,主要用于在应用程序中实现树形视图的功能。在Windows编程中,树形视图控件是常见的一种界面元素,它允许用户以层级结构来展示数据,通常用于文件系统浏览、组织结构显示...
3. **index.html**:通常是项目的主入口页面,包含了引入MzTreeView和其他相关资源的代码,我们可以在这个文件中找到如何使用MzTreeView的实例。 4. **MzTreeView12.js 和 MzTreeView12-pack.js**:这是MzTreeView...
Mtree.html很可能是包含mztreeview实例的HTML文件,用户只需在浏览器中打开这个文件,就能看到实际的树形结构并进行交互。这对于开发者来说是一个快速验证代码和设计的便捷方式。 在提供的压缩包文件中,“说明.htm...
MzTreeView10 开发文档 菜单树开发入门
本文将详细阐述MzTreeView2.0的核心特点、功能、使用方法以及实际应用中的技巧,帮助开发者更好地理解和利用这一优秀工具。 首先,MzTreeView2.0是一款专门用于Windows应用程序开发的树形视图控件,它基于.NET ...
7. **API与配置项**:理解并熟练使用"mztreeview2"提供的API(应用程序接口)和配置选项,可以定制树形结构的样式、行为和交互。 8. **响应式设计**:考虑到不同设备的屏幕大小和分辨率,开发者还需要了解如何使...
梅花雪MzTreeView1.0 梅花雪MzTreeView1.0 梅花雪MzTreeView1.0 梅花雪MzTreeView1.0 梅花雪MzTreeView1.0
要在ASP.NET项目中使用MzTreeView,首先需要将控件的库文件(如DLL)添加到项目的引用中。这可以通过在解决方案资源管理器中右键点击“引用”并选择“添加引用”来完成。接着,在页面的`.aspx`文件中,通过`...
"MzTreeView1.0"是一款专门用于创建和管理树形结构的控件,适用于Windows应用程序开发,尤其是在IT行业的GUI(图形用户界面)设计中。它提供了丰富的功能和灵活性,使得开发者能够轻松地在应用程序中构建出层次清晰...
【描述】描述中提到,这是一个用JavaScript编写的树状视图,树形结构通常在网页应用中用于展现层次化的数据,如目录结构、组织架构或者关系网络等。"1024节点的树" 表示这个控件能够处理至少1024个条目的显示,这在...
在这个案例中,mztreeview2.0是对原有mztreeview的优化。 3. **性能优化**:优化可能涉及到减少资源消耗、提高运行速度、优化内存管理等方面,使软件在处理大量数据或复杂操作时表现更好。 4. **用户体验**:优化...
3. **初始化树控件**:使用JavaScript创建MzTreeView实例,并将之前创建的`div`元素作为参数传入,设置相关配置,如初始展开的节点、节点数据源等。 4. **加载数据**:数据可以是JSON格式,包含节点ID、文本、父...
`MzTreeView`和`jQuery`结合使用,可以创建出高效、用户友好的地区树型选择器,这种选择器通常用于地理信息的选择或者筛选,比如在注册、地址输入等场景。下面我们将详细探讨这两个工具及其在实现地区树型选择中的...
开发者可以使用XML解析库,如System.Xml命名空间中的类,解析XML文档,获取`node`元素及其`children`子元素,然后将这些信息映射到MzTreeView的节点结构上。 ### 动态加载子节点的优势 1. **性能优化**:动态加载...
【应用实例】: MzTreeView适用于各种Web应用场景,例如: 1. 文件系统浏览器:模拟本地文件夹结构,让用户可以浏览、操作文件。 2. 组织架构图:展示公司或项目中的人员结构,便于管理和查找。 3. 层次关系展示:...
修改自meizz的树,这个树确实很强 可加checkbox和radio参考了 http://blog.csdn.net/xustanly/archive/2006/09/11/1207222.aspx