ectable使用说明.docx
- 文档编号:30619552
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:63
- 大小:47.12KB
ectable使用说明.docx
《ectable使用说明.docx》由会员分享,可在线阅读,更多相关《ectable使用说明.docx(63页珍藏版)》请在冰豆网上搜索。
ectable使用说明
【eXtremeComponents总结系列】使用总结(转载)
eXtremeComponents
参考文档
JeffJohnston
版本1.0.0
本文档允许在遵守以下两条原则的条件下被使用和传播:
1)不能凭借本文档索取任何费用2)以任何方式(印刷物或电子版)使用和传播时本文档时,必须包含本版权申明
(更新中...)
TableofContents
前言
1.配置
1.1.先决条件
1.2.安装
1.3.导出过滤器(可选)
1.4.安装测试
2.概述
2.1.引言
3.TableTag
3.1.引言
3.2.显示图片
3.3.过滤、排序和动作(Action)
3.4.设定每页显示行数
3.5.样式
3.6.保存表的状态
3.7.其他属性
3.8.扩展属性
4.RowTag
4.1.引言
4.2.高亮显示行
4.3.样式
4.4.Javascript属性
4.5.扩展属性
5.ColumnTag
5.1.引言
5.2.Cell
5.3.FilterCell
5.4.HeaderCell
5.5.样式
5.6.解析和格式化
5.7.过滤和排序
5.8.Calc
5.9.允许和不允许视图
5.10.其他属性
5.11.扩展属性
6.ParameterTag
6.1.引言
7.ExportTag
7.1.引言
7.2.扩展属性
8.Callbacks
8.1.引言
8.2.RetrieveRowsCallback
8.3.FilterRowsCallback
8.4.SortRowsCallback
9.视图
9.1.引言
9.2.表视图
9.3.导出视图
10.Preferences
10.1.引言
10.2.TableTag
10.3.ColumnTag
10.4.AdvancedTechniques
11.Messages
11.1.资源绑定
11.2.全局资源
11.3.TableTag
11.4.ColumnTag
12.Limit
12.1.Limit指南
12.2.创建Limit
12.3.Filter和Sort属性
12.4.设置页和行属性
12.5.Setup
13.AutoGenerateColumns
13.1.引言
13.2.ColumnsTag
14.Utilities
14.1.引言
14.2.HtmlBuilder
15.1.0.1-M4升级说明
15.1.变更概述
15.1.1.HtmlView
15.1.2.Cell
15.1.3.RowTag
15.1.4.AutoGenerateColumns
15.1.5.ExtendedAttributes
15.1.6.TableTag的collection属性
15.1.7.BaseModel
15.1.8.Properties和ResourceBundle
15.1.9.pageContext
15.1.10.Limit和LimitFactory
15.1.11.TableTag的saveFilterSort属性
15.1.12.ColumnTag的showTotal属性
15.1.13.Image名
15.1.14.FormTag/InputTagDeprecated
15.1.15.RetrieveRowsCallbacks、FilterRowsCallback、SortRowsCallback
16.TagAttributes
16.1.TableTag
16.2.RowTag
16.3.ColumnTag
16.4.ExportTag
16.5.ExportXlsTag
16.6.ExportCsvTag
16.7.ExportPdfTag
16.8.ColumnsTag
16.9.ParameterTag
前言
eXtremeComponents是一系列提供高级显示的开源JSP定制标签。
当前的包含的组件为eXtremeTable,用于以表的形式显示数据。
本文档处于更新中。
大部分章节我将仅仅描述如何使用eXtremeTable。
当然,为了使程序高效并具有更高的灵活性,源代码被再三重构。
随后,我认为阐述一下如何做设计决定是值得的。
我希望大家能知道使用extremeTable是多么容易,并且所有的东西都是可配置。
如果你有任何的要求和建议,请及时通过论坛或者extremecomponents@和我联系。
我想感谢ChrisBauer(Hibernate开发小组)和RodJohnson(Spring开发小组)。
Chris提供并修改了DocBook-XSL使它能生成Hibernate参考指南。
Rod对于使用从Hibernate得到的这个软件来生成Spring文档提供了支持。
我现在用它来生成eXtremeComponents的文档。
译者注:
如果大家有什么疑问和建议,可以通过xplucky@和我联系。
Chapter 1. 配置
1.1. 先决条件
∙Servlet2.3或更高版本
∙JDK1.3.1或更高版本
最小的Jars要求:
∙commons-beanutils1.6
∙commons-collections3.0
∙commons-lang2.0
∙commons-logging1.0.4
∙standard1.0.2
PDF导出需要的Jars:
∙minimumjars(above)
∙avalon-framework4.0
∙batik1.5-fop-0.20-5
∙fop0.20.5
∙xalan2.5.1
∙xercesImpl2.6.1
∙xml-apis2.0.2
XLS导出需要的Jars:
∙minimumjars(above)
∙poi-2.5.1.jar
1.2. 安装
从sourceforge下载发行包。
(
在压缩文件里你能找到开始使用需要的所有东西:
∙extremecomponents.jar
∙extremecomponents.tld
∙extremecomponents.css
∙默认的一组图片
∙源代码
∙test.jsp(用于确认安装是否正确)
将extremecomponents.jar文件拷贝到你的工程的/WEB-INF/lib目录下。
处理TLD文件有两种方式。
你可以把extremecomponents.tld文件放到WEB-INF目录下的任何地方。
不过,为了便于管理,我喜欢把我的TLD文件都放到/WEB-INF/tld目录下。
你需要根据你的extremecomponents.tld文件的位置来修改/WEB-INF/web.xml文件的标签映射。
随后,你需要向下面一样在你的JSP里把eXtremeTable包含进来:
<%@tagliburi="/tld/extremecomponents"prefix="ec"%>
如果你的servlet容器支持JSP1.2(或更高版本),它将能够自动发现TLD文件,那么你什么也不需要做。
当extremecomponents.jar被容器加载的时候,在它的META-INF目录下的extremecomponents.tld文件将被找到。
这时,你需要向下面一样在你的JSP里把eXtremeTable包含进来:
<%@tagliburi="http:
//www.extremecomponents.org"prefix="ec"%>
为了使用eXtremeTable样式,从styles目录拷贝extremecomponents.css到你存放.css脚本的地方。
当然在JSP页面里,你需要提供一个到CSS的链接。
就像我将我的样式表放在/styles目录下。
<%@tagliburi="/tld/c"prefix="c"%>
urlvalue="/styles/extremecomponents.css"/>"> 1.3. 导出过滤器(可选) 为了使导出功能有效,你需要设置导出过滤器。 这是一个仅用于导出功能的可选配置。 如下所示在/WEB-INF/web.xml里配置过滤器: 过滤器还有一个可选的初始化参数,用于决定什么时候生成报头(headers)。 我发现大多数的servlet容器倾向于在调用过滤器的doFilter()方法后才设置响应报头(responseheaders)。 然而,一些servlet容器只有在调用过滤器的doFilter()方法前设置响应报头,过滤器才能正常工作。 默认的方法是调用过滤器的doFilter()方法后设置响应报头,你可以通过使用responseHeadersSetBeforeDoFilter这个初始化参数调整它。 如果你使用了Sitemesh,你将需要包含SitemeshPageFilter。 SitemeshPageFilter扩展了正常的sitemesh的PageFilter,它使得正在进行导出的JSP页面不被修饰。 如下所示在/WEB-INF/web.xml里配置过滤器: 1.4. 安装测试 使用发行包的test.jsp来测试安装。 将test.jsp拷贝到web应用的最顶层,默认的图片文件在/images/table/子目录下。 为了测试,创建相应的目录并将拷贝所有需要的图片。 所有工作都完成后,你可以在浏览器里运行test.jsp了。 提示: 我不提倡在JSP里使用脚本(scriplets),但为了不用使用框架而能进行快速测试,在test.jsp使用脚本是唯一的办法。 Chapter 2. 概述 2.1. 引言 eXtremeTable在给定的servlet范围(scope)外取得Beans或Maps的集合用于JSP页面显示。 servelet范围的搜索顺序是: page,request,session和application。 通过设定TableTage的items属性,eXtremeTable知道哪些需要在servlet范围外被保持。 集合里的Beans是pojo,如果使用maps那么它就是键值对。 你可以认为每一个bean就是表中的一行数据。 在接下来的文档中,我将使用Beans集合来代替这两种集合。 实际表使用的最小语法如下所示: table items="presidents" action="${pageContext.request.contextPath}/presidents.run" imagePath="${pageContext.request.contextPath}/images/*.gif"> row> columnproperty="firstName"/> columnproperty="lastName"/> columnproperty="termDate"/> row> table> 这就是eXtremeTable的一个典型定义。 通过这些定义,你将得到格式化的列和页头,工具栏的所有特性也能很好工作。 Chapter 3. TableTag 3.1. 引言 TableTag用来设定什么被显示并且如何进行显示。 默认的eXtremeTable在servlet范围(按照page,request,session,applicaton的顺序)寻找具有名称和items属性设置相同的Beans集合(如前章所述它指Beans和Maps两种集合)。 表将遍历所有列,它使用var属性将当前行对应的bean从集合传到page范围,因此你可以从page范围中重新得到这些数据进行操作。 tableId用来唯一标识表,如果在JSP页面里包含两个或两个以上的表时需要设置它。 Presidentbean定义如下: publicclassPresidentimplementsSerializable{ privateStringfirstName; privateStringlastName; publicStringgetFirstName(){ returnfirstName; } publicvoidsetFirstName(StringfirstName){ this.firstName=firstName; } publicStringgetLastName(){ returnlastName; } publicvoidsetLastName(StringlastName){ this.lastName=lastName; } } Beans集合需要被组装并传到servlet范围中。 我喜欢使用Spring框架,因此示例将使用Spring框架的控制器(Controller)。 如果你正在使用Struts,它和Action的功能类似。 如果你使用别的东西,比如直接使用servlets,你只需要明白我所做的只是组装Beans集合并传到request范围中。 publicclassPresidentsextendsAbstractController{ protectedModelAndViewhandleRequestInternal(HttpServletRequestrequest, HttpServletResponseresponse) throwsException{ Listpresidents=newArrayList(); Presidentpresident=newPresident(); president.setFirstName("George"); president.setLastName("Washington"); presidents.add(president); president=newPresident(); president.setFirstName("John"); president.setLastName("Adams"); presidents.add(president); request.setAttribute("presidents",presidents); returnnewModelAndView("/demo/presidents.jsp"); } 现在你可以构造表了: <%@tagliburi="/tld/extremecomponents"prefix="ec"%> table items="presidents" var="pres" imagePath="${pageContext.request.contextPath}/images/*.gif" action="${pageContext.request.contextPath}/presidents.run" > columnproperty="firstName"/> columnproperty="lastName"/> ${pres.lastName} column> table> 从本示例中你应该知道我们将名为presidents的Beans集合以presidents为名称放到request中。 为了使表知道如何找到这个Beans集合,我们设置TableTag的items属性为presidents。 同时我们定义了两列: firstName和lastName。 firstName列是最普通的用法: 我们仅仅想让这列从当前bean中得到相应firstName的值;lastName列示另外一种用法: 明确取得值。 从一列中明确取得值非常有用,但是你需要理解表是如何构造行的。 为了构造行,表需要对所有行进行rowsDisplayed属性设定次数的迭代。 每次迭代都从Beans里取得下一个bean并使用var属性设定的名称传入page范围。 也可以说每次迭代你都访问的是集合中当前行对应的bean。 3.2. 显示图片 为了显示图片需要设置imagePath属性: table items="presidents" var="pres" imagePath="${pageContext.request.contextPath}/images/*.gif" > ... table> eXtremeTable将找到一个目录下的所有图片并使用特殊的语法来定义他们是那类图片。 本示例中所有的图片都直接保存在web上下文的images目录下。 *.gif使eXtremeTable知道所有的图片都是GIF格式的。 在我们讨论preferences后,你将发现你可以你可以通过在extremecomponents.properties文件中设定这个属性,而不用再整个应用的每个eXtremeTable中包含它。 3.3. 过滤、排序和动作(Action) eXtremeTable内嵌了过滤和排序功能,你只需要决定是否需要使用他们。 你要使用的属性是filterable和sortable,他们都是布尔值并且默认值是true。 默认的所有特性都有效,你可以按照需要来关掉一些特性。 比如,如果你不想使用排序或过滤你可以把他们的属性设为false。 table items="presidents" var="pres" imagePath="${pageContext.request.contextPath}/images/*.gif" action="${pageContext.request.contextPath}/presidents.run" filterable="false" sortable="false" > ... table> 如果你仍不确信,你可以来验证他们。 首先,设置filterable和sortable为true,你将看到eXtremeTable允许你输入关键词来过滤结果集,它也允许你通过在页头(header)上滚动鼠标来排序。 然后,设置filterable和sortable为fale,你将发现所有这些特性都不允许使用。 本示例需要指出的是使用action属性,action被用来告诉eXtremeTable当过滤或排序时如何回到当前的页面。 本例中我通过Spring框架的controller(在这里是presidents.run)来得到Beans集合。 你不需要担心传参问题,eXtremeTable将保存所有的参数并将它们和过滤器、排序、分页一起传递给Beans集合。 更详细的信息请参考ParameterTag。 3.4. 设定每页显示行数 默认地eXtremeTable一页将显示15行。 你可以通过设定rowsDisplayed属性为你想显示行数的数值来改变它。 rowsDisplayed也可以在extremecomponents.properties文件中设定。 (参考Preferences)。 提示: 如果你想在一页中显示所有行,只需要设置showPagination为false。 3.5. 样式 TableTag关联了很多样式属性: table cellspacing="0" cellpadding="0" border="0" width="80%" style="" styleClass="" /> 所有这些都是可选的。 3.6. 保存表的状态 表新增了两个属性: state和stateAttr。 state属性参照State接口并能插接如何保存表的状态的不同实现。 State借口如下: publicinterfaceState{ publicvoidsaveParameters(TableModelmodel,Mapparameters); publicMapgetParameters(TableModelmodel); } state属性使用预设的四种状态(default、notifyToDefault、persist和notifyToPersist)之一,你也可以插接自己的实现。 default状态不维持
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ectable 使用说明