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 提供了一种优雅的方式来处理 Web 应用中的表格数据展示,通过其丰富的功能和高度的定制性,可以帮助开发者轻松地创建出功能强大且美观的表格界面。了解并熟练掌握 DisplayTag 的使用,对于提升...
这个“displayTag应用代码”压缩包包含了一个完整的DisplayTag应用工程,同时也包括了用于测试和运行环境的数据库文件。这个项目是基于MySQL数据库和Eclipse集成开发环境构建的,意味着开发者可以快速地导入和运行...
### Web开发设计DisplayTag应用指南 #### 明确理解DisplayTag功能与应用场景 DisplayTag是一个专为Web开发设计的强大表格显示标签库,尤其适用于MVC(Model-View-Controller)架构模式下的Java Web应用程序。其...
4. `displaytag-portlet`: 这可能是Displaytag针对portlet环境(如Liferay、Portal Server等)的实现,使得在portlet中也能方便地使用Displaytag的功能,比如在企业级应用中提供灵活的数据展示。 5. `displaytag-...
DisplayTag 是一个强大的开源Java库,专为Web开发设计,特别是在MVC模式下,用于创建复杂的表格展示。它提供了一组可重用的JSP标签,简化了在Web页面上处理表格数据的过程。DisplayTag 不仅能显示数据,还支持排序、...
DisplayTag是一个开源的Java库,专门用于在Web应用程序中创建复杂的表格。它提供了一系列的标签和功能,使得在JSP页面上展示数据变得更加容易和灵活。DisplayTag支持分页、排序、导出、国际化和自定义样式,是开发...
DisplayTag 是一个强大的开源Java Web开发中的表格展示标签库,特别适用于MVC模式的应用程序。它简化了在网页上创建复杂表格的过程,提供了多种功能,如排序、分页、国际化和自定义样式等。以下是对DisplayTag应用的...
DisplayTag库是一个强大的开源JSP标签库,专为创建复杂表格和数据呈现而设计。它提供了许多高级功能,如分页、排序、过滤、导出和...在实际开发中,熟练掌握DisplayTag的使用将有助于创建更加高效且易于维护的Web应用。
3. **配置属性文件**:将 `displaytag-examples-1.1.war` 中的 `WEB-INF/classes/displaytag.properties` 文件复制到自己的 Web 应用程序的 `WEB-INF/classes` 目录下。 4. **放置资源文件**:将 `displaytag-...
"Java分页组件"和"Java分页插件"标签表明DisplayTag是专门针对Java Web应用设计的,它可以作为MVC框架(如Spring MVC)的一个插件,无缝集成到现有的项目架构中。DisplayTag不仅支持基本的分页,还提供了诸如国际化...
第三个是displaytag的应用文件 两个版本的程序都可以运行 并且程序中含有数据库文件 可以导入 displaytag是一个很好的插件 网上有很多资源 可是一直找不到好的代码示例 花了一个星期熟悉整理了下 分享给大家了 ...
DisplayTag 是一个强大的开源 JSP 标签库,专门用于处理网页中的表格展示。它提供了丰富的功能,如分页、数据导出、列排序和分组等,极大地简化了网页表格的开发工作。要使用 DisplayTag,首先需要从其官方网站...
你可以在现在流行的web应用的MVC模式中集成DisplayTag到View层,其提供的强大表格格式化功能一定会令你爱不释手。或许上面说的有些夸张了,但是DisplayTag在表格的格式化方面表现确实出色,当然,他也只能显示表格,...
这种方式通常用于快速查看对象数据,但实际应用中通常需要定制显示内容。 2. **定制列显示**: 使用`<display:column>`标签可以指定要显示的属性和列标题。`property`属性指定了对象的属性(对应getter方法),`...
此外,不要忘记将 `displaytag-examples-1.1.war` 中的资源文件(如 CSS、images 和 img 文件夹内容)复制到与你的 Web 应用程序同级的目录。 **二、Displaytag 使用** 1. **数据源的范围** - `pageScope`: 表示...
DisplayTag是一个开源的Java库,专门用于创建复杂的表格展示,尤其在Web应用中十分常见。这个压缩包包含了解决DisplayTag在处理中文显示时遇到的问题,以及一个专门用于编辑.properties文件的插件,使得配置更加方便...
这个“displaytag简单项目”是一个基于DisplayTag库的示例应用,旨在帮助开发者理解并掌握如何在实际项目中使用DisplayTag。在这个项目中,你可以看到如何配置DisplayTag、如何创建动态表格以及如何自定义各种展示...
DisplayTag是Java Web开发中的一款强大且功能丰富的表格标签库,它为开发人员提供了一种高效、易用的方式来展示表格数据。DisplayTag 1.2是这个库的一个版本,包含了源码和对应的jar包,方便开发者进行查看和使用。 ...