配置
Requirements 需求
- Servlet 2.3 or higher
- JDK 1.3.1 or higher
Minimum Jars Needed 最低的类库需求:
- commons-beanutils 1.6 (1.7 if sorting with nested properties)
- commons-collections 3.0
- commons-lang 2.0
- commons-logging 1.0.4
- standard 1.0.2
Jars Needed for the PDF export 导出PDF的类库需求:
- minimum jars (above)
- avalon-framework 4.0
- batik 1.5-fop-0.20-5
- fop 0.20.5
- xalan 2.5.1
- xercesImpl 2.6.1
- xml-apis 2.0.2
Jars Needed for the XLS export 导出excel的类库需求:
- minimum jars (above)
- poi-2.5.1.jar
Installation 安装
下载安装包
在zip文件中, 你将会找到开始所需的任何文件:
- extremecomponents.jar
- extremecomponents.tld
- extremecomponents.css
- a set of default images
- source code
- test.jsp (用来验证安装)
文件extremecomponents.jar和上面所罗列的需要的类库, 都放到你项目的/WEB-INF/lib 文件夹下面.
对于处理TLD文件有两个方式. 最兼容各个servlet容器的方式是, 把文件 extremecomponents.tld放在WEB-INF文件夹的某个子目录处. 我个人喜欢把我的TLD文件放在 /WEB-INF/tld 文件夹下面, 可以方便文件的组织管理. 然后, 你可以修改/WEB-INF/web.xml来映射taglib文件 extremecomponents.tld.
<taglib>
<taglib-uri>/tld/extremecomponents</taglib-uri>
<taglib-location>/WEB-INF/tld/extremecomponents.tld</taglib-location>
</taglib>
然后在你的JSP页面中包含eXtremeTable, 你需要增加这样一个taglib:
<%@ taglib uri="/tld/extremecomponents" prefix="ec" %>
如果你的JSP是1.2或者更高的servlet容器, 能提供TLD文件的自动发现, 那么你就不必做什么. 当extremecomponents.tld文件载入的时候, extremecomponents.tld 文件被打包进extremecomponents.jar的META-INF文件夹内, 会被容器找到. 在你的JSP中包含eXtremeTable, 你需要下文一样增加一个taglib:
<%@ taglib uri="http://www.extremecomponents.org" prefix="ec" %>
为了定制化eXtremeTable, 从styles文件夹中拷贝extremecomponents.css到你存放.css脚本的地方. 当然在JSP中, 你需要增加一个CSS的链接. 例如, 我把我的stylesheet放在一个/styles目录中.
<%@ taglib uri="/tld/c" prefix="c" %>
<link rel="stylesheet" type="text/css" href="<c:url value="/styles/extremecomponents.css"/>">
Export Filter (optional) 导出过滤器(可选)
为了能正常导出, 你需要建立一个ExportFilter. 这个可选项是只针对导出的.
为了建立过滤器需要在你的/WEB-INF/web.xml文件中增加一个入口:
<filter>
<filter-name>eXtremeExport</filter-name>
<filter-class>org.extremecomponents.table.filter.ExportFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>eXtremeExport</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
同样也有一个可选的初始化参数, 当response header被设置的时候, 你能够让Filter决定是否可行. 我已经发现, 在大部分servlet容器中, 在调用过滤器的doFilter()方法后, 设置response headers是比较令人满意的. 然而, 如果response headers被设置在过滤器的doFilter()方法之前, 过滤器只能在某些容器中能正确运行. 默认的是在过滤器的doFilter()方法之后设置response headers. 在使用responseHeadersSetBeforeDoFilter init-param之前执行设置.
<filter>
<filter-name>eXtremeExport</filter-name>
<filter-class>org.extremecomponents.table.filter.ExportFilter</filter-class>
<init-param>
<param-name>responseHeadersSetBeforeDoFilter</param-name>
<param-value>true</param-value>
</init-param>
</filter>
如果你使用Sitemesh来布局, 你将同样需要包括SitemeshPageFilter. SitemeshPageFilter继承了正规的sitemesh PageFilter, 如果有一个导出被执行完, 将会导致JSP不能被装饰.
为了建立filter需要增加一个入口在/WEB-INF/web.xml文件中:
<filter>
<filter-name>Sitemesh</filter-name>
<filter-class>org.extremecomponents.table.filter.SitemeshPageFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Test Installation 测试安装
为了测试安装, 在安装文件中有一个快速而直接的test.jsp页面. 简单地把test.jsp页面放在web application的根目录下. 默认的情况下, 图片通常是被放在被称为 /images/table/的子目录下. 为了这个测试, 同样需要创建这个目录, 把图片放到那儿. 一旦搞定, 你可以直接在浏览器中定位到test.jsp页面.
Note: 我不是很喜欢在JSP中编写脚本, 但对于test.jsp, 这是唯一的方式来模拟一个快速的测试, 而不需要建立一个正规的框架.