E3Tree参考手册15.docx

上传人:b****6 文档编号:7580218 上传时间:2023-01-25 格式:DOCX 页数:39 大小:209.66KB
下载 相关 举报
E3Tree参考手册15.docx_第1页
第1页 / 共39页
E3Tree参考手册15.docx_第2页
第2页 / 共39页
E3Tree参考手册15.docx_第3页
第3页 / 共39页
E3Tree参考手册15.docx_第4页
第4页 / 共39页
E3Tree参考手册15.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

E3Tree参考手册15.docx

《E3Tree参考手册15.docx》由会员分享,可在线阅读,更多相关《E3Tree参考手册15.docx(39页珍藏版)》请在冰豆网上搜索。

E3Tree参考手册15.docx

E3Tree参考手册15

E3.Tree参考手册

(v1.0)

 

目录

简介2

系统要求2

新增功能2

升级说明2

样例部署2

使用4

Lib文件清单4

使用taglib4

添加JAR到classpath中8

业务数据对象8

控制器Servlet9

JSP页面11

web.xml配置11

测试12

体系结构12

设计模型13

API代码片段20

排序20

设置节点图标21

节点过滤22

构造混合节点树23

构造动态树25

自定义TreeBuilder27

Taglib使用代码片段27

简单树27

设置节点图标27

动态树28

节点排序28

反向排序28

FAQ29

简介

1.E3.Tree是E3平台下一个用于构造树型UI(menu,tree,outlookbar等)的的组件,

E3.Tree特色

❑部署简单,只需要把相关jar放到WEB-INF/lib目录下即可

❑构造树,菜单等树型UI的开发模式一致,

❑提供了API和taglib2种使用方式,使用简单,功能强大

❑能够很容易把现有的树型UI集成进来,现在支持的有:

xtree,exttree和yuimenu

❑功能丰富,现在支持的树有普通树,radio树,checkbox树,动态树等

系统要求

JDK1.4X或者以上版本

E3.tree有2种使用方式,一种是直接调用API,另外一种是使用taglib,第一种方式只要求jsp1.2,servlet2.3即可。

第2种方式需要jsp2.0servlet2.4

新增功能

提供了taglib的方式来构造树型UI

升级说明

替换E3-Tree.jar

添加commons-beanutils-core.jar

样例部署

把e3.war放到Tomcat'swebapps目录下,启动服务器,输入地址http:

//localhost:

8080/e3进入示例主页.点级E3.Tree连接,即可看到示例程序.

示例组图:

使用

Lib文件清单

文件名

版本

说明

E3-Tree.jar

1.0

E3平台的树

E3-TemplateEngine.ja

1.0

E3平台的模板引擎Adapter

commons-logging.jar

1.04

Apache的commonslog,

log4j-1.2.14.jar

1.2.14

Apache的log4j

commons-collections-2.1.1.jar

2.1.1

Apache的collections

velocity-1.4.jar

1.4

Apache的模板引擎

commons-beanutils-core.jar

1.6

Apache的BeanUtils,使用里面的PropertyUtils类.

使用taglib

我们先来看看怎么使用taglib.把下面内容命名为E3Tree.jsp,放到例子web应用目录下去,输入地址http:

//localhost:

8080/e3/E3Tree.jsp看看效果,如果你看到2棵树,说明程序正常没问题,否则请到e3群(21523645)里面问.

<%@pagecontentType="text/html;charset=utf-8"%>

<%@taglibprefix="c"uri="%>

<%@taglibprefix="e3"uri="/e3/tree/E3Tree.tld"%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">

<%

java.util.Listdatas=newjava.util.ArrayList();

java.util.Mapdata=newjava.util.HashMap();

data.put("id","10");

data.put("parentId",null);

data.put("name","总部");

datas.add(data);

java.util.Mapdata1=newjava.util.HashMap();

data1.put("id","1010");

data1.put("parentId","10");

data1.put("name","子公司1");

datas.add(data1);

java.util.Mapdata2=newjava.util.HashMap();

data2.put("id","1020");

data2.put("parentId","10");

data2.put("name","子公司2");

datas.add(data2);

pageContext.setAttribute("orgs",datas);

%>

 

使用taglib步骤

1.声明taglib

<%@taglibprefix="e3"uri="/e3/tree/E3Tree.tld"%>

2.准备业务数据

java.util.Listdatas=newjava.util.ArrayList();

java.util.Mapdata=newjava.util.HashMap();

data.put("id","10");

data.put("parentId",null);

data.put("name","总部");

datas.add(data);

java.util.Mapdata2=newjava.util.HashMap();

data2.put("id","1020");

data2.put("parentId","10");

data2.put("name","子公司2");

datas.add(data2);

业务数据可以保存在Map或者普通的JAVABEAN中.业务数据必须包含id,parentId,以及节点名称信息。

注意:

并不要求他们的属性名是”id”“parented”,”name”,只需要包含了这些信息即可。

Id代表节点主键,parentId代表父亲节点主键,name代表节点标题。

如你的业务对象属性名称是orgId,parentOrgId,orgName都可以.

3.保存业务数据

pageContext.setAttribute("orgs",datas);

可以保存到(pageContext,request,session或application里)

4.使用taglib显示树

treevar="org"items="orgs"builder="extTree">

nodeid="${org.id}"parentId="${org.parentId}"name="${org.name}"

icon="${orgIcon}"

openIcon="${userIcon}"

action="javascript:

showSelectedNode()"

/>

tree>

Tree标签属性

属性名称

属性类型

备注

var

String

用于保存items元素

items

String

是业务数据列表对象的key

builder

String

用于构造树的builder对象(builder是什么下面会有介绍),可以选值有

[XTree,XLoadTree,RadioXTree,RadioXLoadTree,CheckXTree,CheckXLoadTree,CompositeXTree,CompositeXLoadTree,ExtTree,ExtLoadTree]

如果这些builder不能满足您的需求,你可以指定一个class,只要指定class实现了WebTreeBuilder接口即可.

comparator

java.util.Comparator

排序器,用来对树的节点排序.节点类型为

net.jcreate.e3.tree.support.WebTreeNode

sortProperty

String

排序属性名称,默认是按节点的名称来排序的,如果要使用别的属性排序,则需要设置该值.:

如果你的业务对象有排序属性时,则需要指定,如sortProperty=”orgOrder”.注意:

如果设置了comparator属性,那么该值无效.

reverse

boolean

是否反向排序,默认false

❑node标签负责将业务对象转换成树节点对象.nodetaglib包含的常规属性有

属性名称

属性类型

备注

id

String

节点id

parentId

String

父亲节点id

name

String

节点名称(标题)

icon

String

节点图标

openIcon

String

节点展开时的图标

action

String

是单节点时的动作,可以是一个url也可以是javascript函数.如果是函数,则必须以javascript:

开头.如:

action=”javascript:

alert(‘demo’)”

nodeProperty

String

用于设置节点类型,有效值radio,checkbox和none,nodeProperty的默认值是none,表示节点旁边没有其他控件,为radio时,节点旁边会有个单选按纽,为checkbox时,节点旁边会有个checkbox按纽.

selected

boolean

是否选种节点,只有当nodeProperty为radio或checkbox时才有效,默认值为false

disabled

boolean

是否禁用节点,默认值为false

value

String

节点帮定的值,只有当nodeProperty为radio或checkbox时才有效,默认值为空(长度为0的字符串)

dragable

boolean

节点是否允许拖动,默认值为false

dropable

boolean

是否允许停放拖动的节点,默认值为false

添加JAR到classpath中

现在来看调用API的使用方式.新建一个web项目,把Lib文件清单中的jar全部添加到classpath中

业务数据对象

packagenet.jcreate.e3.samples.tree;

publicclassOrg{

privateStringid;

privateStringparentId;

privateStringname;

privateintviewOrder;

publicOrg(){

}

publicOrg(StringpId,StringpParentId,StringpName,intpViewOrder){

this.id=pId;

this.parentId=pParentId;

this.name=pName;

this.viewOrder=pViewOrder;

}

publicintgetViewOrder(){

returnviewOrder;

}

publicvoidsetViewOrder(intviewOrder){

this.viewOrder=viewOrder;

}

publicStringgetId(){

returnid;

}

publicvoidsetId(Stringid){

this.id=id;

}

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicStringgetParentId(){

returnparentId;

}

publicvoidsetParentId(StringparentId){

this.parentId=parentId;

}

}

控制器Servlet

packagenet.jcreate.e3.samples.tree;

importjava.io.IOException;

importjava.util.ArrayList;

importjava.util.List;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importnet.jcreate.e3.tree.Node;

importnet.jcreate.e3.tree.TreeDirector;

importnet.jcreate.e3.tree.TreeModel;

importnet.jcreate.e3.tree.UncodeException;

importnet.jcreate.e3.tree.UserDataUncoder;

importnet.jcreate.e3.tree.support.AbstractWebTreeModelCreator;

importnet.jcreate.e3.tree.support.DefaultTreeDirector;

importnet.jcreate.e3.tree.support.WebTreeBuilder;

importnet.jcreate.e3.tree.support.WebTreeNode;

importnet.jcreate.e3.tree.xtree.XTreeBuilder;

publicclassTestServletextendsHttpServlet{

protectedvoidservice(HttpServletRequestpRequest,HttpServletResponsepResponse)throwsServletException,IOException{

//业务数据

Listorgs=newArrayList();

OrgjcjtOrg=newOrg("001",null,"进创集团",1);

OrgjcrjOrg=newOrg("001001","001","进创软件",1);

OrgxrjOrg=newOrg("0010010011","001001","X软件公司",1);

OrgyrjOrg=newOrg("0010010012","001001","Y软件公司",2);

OrgzrjOrg=newOrg("0010010013","001001","Z软件公司",3);

orgs.add(jcjtOrg);

orgs.add(jcrjOrg);

orgs.add(xrjOrg);

orgs.add(yrjOrg);

orgs.add(zrjOrg);

//业务数据解码器,从业务数据中分解出id和parentid

UserDataUncoderorgUncoder=newUserDataUncoder(){

publicObjectgetID(ObjectpUserData)throwsUncodeException{

Orgorg=(Org)pUserData;

returnorg.getId();

}

publicObjectgetParentID(ObjectpUserData)throwsUncodeException{

Orgorg=(Org)pUserData;

returnorg.getParentId();

}

};

//Tree模型构造器,用于生成树模型

AbstractWebTreeModelCreatortreeModelCreator=

newAbstractWebTreeModelCreator(){

//该方法负责将业务数据映射到树型节点

protectedNodecreateNode(ObjectpUserData,UserDataUncoderpUncoder){

Orgorg=(Org)pUserData;

WebTreeNoderesult=newWebTreeNode(org.getName(),"org"+org.getId());

//action是点击按纽执行的方法.可以是url,或者javascript函数

result.setAction("javascript:

alert('"+org.getName()+"')");

returnresult;

}

};

treeModelCreator.init(pRequest);

TreeModeltreeModel=treeModelCreator.create(orgs,orgUncoder);

TreeDirectordirector=newDefaultTreeDirector();//构造树导向器

WebTreeBuildertreeBuilder=newXTreeBuilder();//构造树Builder

treeBuilder.init(pRequest);

director.build(treeModel,treeBuilder);//执行构造

StringtreeScript=treeBuilder.getTreeScript();//获取构造树的脚本

pRequest.setAttribute("treeScript",treeScript);//保存到request,以便页面使用

pRequest.getRequestDispatcher("XTree.jsp").forward(pRequest,pResponse);

}

}

上面代码构造是普通树,如果要构造带checkbox/radiobox的树,只需要将

WebTreeBuildertreeBuilder=newXTreeBuilder()

这行代码换成

WebTreeBuildertreeBuilder=newCheckXTreeBuilder()

WebTreeBuildertreeBuilder=newRadioXTreeBuilder()

即可

JSP页面

命名为XTree.jsp,放在web应用跟目录下(WEB-INF所在目录);

%@pagecontentType="text/html;charset=utf-8"%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">

<%=request.getAttribute("treeScript")%>

web.xml配置

把下面配置添加到web.xml文件

net.jcreate.e3.tree.loader.LoadResourcesListener

e3/characte

展开阅读全文
相关搜索

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1

urlvar="orgIcon"value="/e3/samples/tree/Org.gif"/>

urlvar="userIcon"value="/e3/samples/tree/User.gif"/>

treevar="org"items="orgs"builder="extTree">

nodeid="${org.id}"parentId="${org.parentId}"name="${org.name}"

icon="${orgIcon}"

openIcon="${userIcon}"

action="javascript:

showSelectedNode()"

/>

tree>

treevar="org"items="orgs"builder="xTree">

nodeid="B${org.id}"parentId="B${org.parentId}"name="${org.name}"

icon="${orgIcon}"

openIcon="${userIcon}"

action="javascript:

alert('test')"

/>

tree>