E3Tree参考手册15Word格式文档下载.docx
- 文档编号:20695952
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:39
- 大小:209.66KB
E3Tree参考手册15Word格式文档下载.docx
《E3Tree参考手册15Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《E3Tree参考手册15Word格式文档下载.docx(39页珍藏版)》请在冰豆网上搜索。
❑构造树,菜单等树型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
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:
8080/e3/E3Tree.jsp看看效果,如果你看到2棵树,说明程序正常没问题,否则请到e3群(21523645)里面问.
<
%@pagecontentType="
text/html;
charset=utf-8"
%>
%@taglibprefix="
c"
uri="
%>
e3"
/e3/tree/E3Tree.tld"
!
DOCTYPEHTMLPUBLIC"
-//W3C//DTDHTML4.0Transitional//EN"
>
HTML>
HEAD>
METAhttp-equiv=Content-Typecontent="
script>
functionshowSelectedNode(){
varselectModel=tree.getSelectionModel();
varselectNode=selectModel.getSelectedNode();
alert(selectNode.text+selectNode.id);
}
/script>
/HEAD>
BODY>
%
java.util.Listdatas=newjava.util.ArrayList();
java.util.Mapdata=newjava.util.HashMap();
data.put("
id"
"
10"
);
parentId"
null);
name"
总部"
datas.add(data);
java.util.Mapdata1=newjava.util.HashMap();
data1.put("
1010"
"
);
子公司1"
datas.add(data1);
java.util.Mapdata2=newjava.util.HashMap();
data2.put("
1020"
子公司2"
datas.add(data2);
pageContext.setAttribute("
orgs"
datas);
table>
tr>
td>
c:
urlvar="
orgIcon"
value="
/e3/samples/tree/Org.gif"
/>
userIcon"
/e3/samples/tree/User.gif"
e3:
treevar="
org"
items="
builder="
extTree"
<
nodeid="
${org.id}"
parentId="
${org.parentId}"
name="
${org.name}"
icon="
${orgIcon}"
openIcon="
${userIcon}"
action="
javascript:
showSelectedNode()"
/>
/e3:
tree>
/td>
xTree"
B${org.id}"
B${org.parentId}"
alert('
test'
)"
/tr>
/BODY>
/HTML>
使用taglib步骤
1.声明taglib
2.准备业务数据
业务数据可以保存在Map或者普通的JAVABEAN中.业务数据必须包含id,parentId,以及节点名称信息。
注意:
并不要求他们的属性名是”id”“parented”,”name”,只需要包含了这些信息即可。
Id代表节点主键,parentId代表父亲节点主键,name代表节点标题。
如你的业务对象属性名称是orgId,parentOrgId,orgName都可以.
3.保存业务数据
pageContext.setAttribute("
可以保存到(pageContext,request,session或application里)
4.使用taglib显示树
Tree标签属性
属性名称
属性类型
备注
var
String
用于保存items元素
items
是业务数据列表对象的key
builder
用于构造树的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
排序属性名称,默认是按节点的名称来排序的,如果要使用别的属性排序,则需要设置该值.:
如果你的业务对象有排序属性时,则需要指定,如sortProperty=”orgOrder”.注意:
如果设置了comparator属性,那么该值无效.
reverse
boolean
是否反向排序,默认false
❑node标签负责将业务对象转换成树节点对象.nodetaglib包含的常规属性有
id
节点id
parentId
父亲节点id
name
节点名称(标题)
icon
节点图标
openIcon
节点展开时的图标
action
是单节点时的动作,可以是一个url也可以是javascript函数.如果是函数,则必须以javascript:
开头.如:
action=”javascript:
alert(‘demo’)”
nodeProperty
用于设置节点类型,有效值radio,checkbox和none,nodeProperty的默认值是none,表示节点旁边没有其他控件,为radio时,节点旁边会有个单选按纽,为checkbox时,节点旁边会有个checkbox按纽.
selected
是否选种节点,只有当nodeProperty为radio或checkbox时才有效,默认值为false
disabled
是否禁用节点,默认值为false
value
节点帮定的值,只有当nodeProperty为radio或checkbox时才有效,默认值为空(长度为0的字符串)
dragable
节点是否允许拖动,默认值为false
dropable
是否允许停放拖动的节点,默认值为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
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"
进创软件"
OrgxrjOrg=newOrg("
0010010011"
X软件公司"
OrgyrjOrg=newOrg("
0010010012"
Y软件公司"
2);
OrgzrjOrg=newOrg("
0010010013"
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{
returnorg.getParentId();
}
};
//Tree模型构造器,用于生成树模型
AbstractWebTreeModelCreatortreeModelCreator=
newAbstractWebTreeModelCreator(){
//该方法负责将业务数据映射到树型节点
protectedNodecreateNode(ObjectpUserData,UserDataUncoderpUncoder){
WebTreeNoderesult=newWebTreeNode(org.getName(),"
+org.getId());
//action是点击按纽执行的方法.可以是url,或者javascript函数
result.setAction("
"
+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所在目录);
%=request.getAttribute("
)%>
web.xml配置
把下面配置添加到web.xml文件
listener>
listener-class>
net.jcreate.e3.tree.loader.LoadResourcesListener<
/listener-class>
/listener>
filter>
filter-name>
e3/characte
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- E3Tree 参考手册 15
![提示](https://static.bdocx.com/images/bang_tan.gif)