displaytag 是一个不错的表格标签,可以很方便的取数据放在一个表格里面,支持页面分页
使用总结:
1配置:
导出excel,pdf,xml,cvs文件配置
<filter-name>ResponseOverrideFilter</filter-name>
<filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ResponseOverrideFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>ResponseOverrideFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
2
Struts2传到页面的是一个List,这时在页面上的标签可用写成:
<display:table requestURI="/user/index"
name="listTablePage"
id ="element"
export="true"
class="isis"
defaultorder="descending"
size="resultSize"
pagesize="2"
partialList="true"
>
<display:caption>人员信息</display:caption>
<display:column property="userId" title="userId" sortable="true"/>
<display:column property="userName" title="userName" sortable="true"/>
<display:column property="userPwd" title="userPwd" sortable="true"/>
<display:column property="orgId" title="orgId" sortable="true"/>
<display:column property="userType" title="userType" sortable="true"/>
<display:column property="userReal" title="userReal" sortable="true"/>
</display:table>
listTablePage:从Action页面传的List。resultSize是从数据库取得的总数。
3
数据库分页。
displaytag可用支持数据库分页,这样可用处理由于每次取得的是大量数据导致的服务器宕机等问题。
解决办法是在Action页面添加如下内容:
public String qryList(){
int pageSize = 2 ; //每页显示的条数
resultSize = dataBaseServices.qryTableCount();
HttpServletRequest request = ServletActionContext.getRequest();
String pageIndexName = new org.displaytag.util.ParamEncoder("element").encodeParameterName(org.displaytag.tags.TableTagParameters.PARAMETER_PAGE); // 页数的参数名
int pageIndex = GenericValidator.isBlankOrNull(request.getParameter(pageIndexName))?0:(Integer.parseInt(request.getParameter(pageIndexName))-1);//当前页数
int start = pageIndex * pageSize;
int end = (pageIndex + 1 ) * pageSize;
listTablePage = dataBaseServices.qryTablePage(start, end);
return SUCCESS;
}
GenericValidator类导入的是
import org.apache.commons.validator.GenericValidator;
commons-validator中。
element是标签中的Id,通过id取得的是翻页的页数,据此来分页。
4
如果要支持中文分页,必须配置如下:
在classpath里面配置一个displaytag_zh_CN.properties文件。修改里面的内容如下
找到# messages,修改成汉字。
# messages
basic.msg.empty_list=暂无记录
basic.msg.empty_list_row=<tr class="empty"><td colspan="0">暂无记录</td></tr></tr>
export.banner=<div class="exportlinks">导出选项:{0}</div>
paging.banner.no_items_found=
paging.banner.one_item_found=<span class="pagebanner">共有1条{0}记录</span>
paging.banner.all_items_found=<span class="pagebanner">共有{0}条{1}记录,显示所有{2}记录</span>
paging.banner.some_items_found=<span class="pagebanner">共有{0}条{1}记录,当前显示从第{2}条至第{3}条</span>
paging.banner.full=<span class="pagelinks"> <a href="{1}">首页</a>/<a href="{2}">上一页</a> {0} <a href="{3}">下一页</a>/<a href="{4}">尾页</a> </span>
paging.banner.first=<span class="pagelinks"> 首页/上一页 {0} <a href="{3}">下一页</a>/<a href="{4}">尾页</a> </span>
paging.banner.last=<span class="pagelinks"> <a href="{1}">首页</a>/<a href="{2}">上一页</a> {0} 下一页/尾页 </span>
paging.banner.page.link=<a href="{1}" title="转到第{0}页">{0}</a>
paging.banner.page.separator=,
至于displaytag_zh_CN.properties的内容可以从displaytag\target\classes\org\displaytag\properties里面解压出来重命名即可。
当然,displaytag对中文支持不好是公认的,原因是编码格式不对,可以通过修改源码来解决。
用svn从网上down了个1.2版本的。用maven转换成eclipse可以导入的项目,机子上必须装Maven才行。具体如何装,可以google之。
转换项目:在maven中敲命令进入到displaytag的根目录,执行mvn eclipse:eclipse 执行成功后导入eclipse即可。
修改源码:
找到
private String getProperty(String key)
修改成
private String getProperty(String key)
{
String val = this.properties.getProperty(key);
if (val != null){
try {
val = new String(val.getBytes("ISO8859-1"), "UTF-8");
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("UnsupportedEncodingException occured");
}
}
return val;
}
即可。最后用eclipse打包放到项目中,重启Tomcat即可完美的显示中文!
至此,displaytag应用结束。
分享到:
相关推荐
DisplayTag应用DisplayTag应用DisplayTag应用DisplayTag应用DisplayTag应用DisplayTag应用
DisplayTag
DisplayTag是一个非常好用的表格显示标签,适合MVC模式.
displaytag标签使用详解 应用实例
DisplayTag是一个非常好用的表格显示标签,适合MVC模式,其主页在http://displaytag.sourceforge.net
displayTag的完整应用工程包,还包扩了数据库文件。环境为Mysql+eclipse
第三个是displaytag的应用文件 两个版本的程序都可以运行 并且程序中含有数据库文件 可以导入 displaytag是一个很好的插件 网上有很多资源 可是一直找不到好的代码示例 花了一个星期熟悉整理了下 分享给大家了 ...
你可以在现在流行的web应用的MVC模式中集成DisplayTag到View层,其提供的强大表格格式化功能一定会令你爱不释手。或许上面说的有些夸张了,但是DisplayTag在表格的格式化方面表现确实出色,当然,他也只能显示表格,...
DisplayTag标签使用说明DisplayTag标签使用说明DisplayTag标签使用说明DisplayTag标签使用说明DisplayTag标签使用说明DisplayTag标签使用说明
displaytag所有包(资源) 及使用方法
displaytag的使用方法(用于数据表格的显示和功能控制)Displaytag1.1版本使用方法
关于displaytag标签的使用 使用方便 做网页的时候用的着
示例如何使用displaytag,详细介绍displaytag在使用方式上的不同,具有举一反三的效果
DisplayTag分页及属性
Displaytag实现分页
基于DisplayTag的分页方案
displaytag-1.2
displaytag1.2.jar 下载
很全面的DisplayTag中文帮助文档,对了解和使用该标签有很大的帮助