`

displaytag应用小结

阅读更多
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 提供了一种优雅的方式来处理 Web 应用中的表格数据展示,通过其丰富的功能和高度的定制性,可以帮助开发者轻松地创建出功能强大且美观的表格界面。了解并熟练掌握 DisplayTag 的使用,对于提升...

    displayTag应用代码

    这个“displayTag应用代码”压缩包包含了一个完整的DisplayTag应用工程,同时也包括了用于测试和运行环境的数据库文件。这个项目是基于MySQL数据库和Eclipse集成开发环境构建的,意味着开发者可以快速地导入和运行...

    Web开发设计DisplayTag应用指南

    ### Web开发设计DisplayTag应用指南 #### 明确理解DisplayTag功能与应用场景 DisplayTag是一个专为Web开发设计的强大表格显示标签库,尤其适用于MVC(Model-View-Controller)架构模式下的Java Web应用程序。其...

    displaytag-1.1 源码

    4. `displaytag-portlet`: 这可能是Displaytag针对portlet环境(如Liferay、Portal Server等)的实现,使得在portlet中也能方便地使用Displaytag的功能,比如在企业级应用中提供灵活的数据展示。 5. `displaytag-...

    Web开发设计DisplayTag应用指南.doc

    DisplayTag 是一个强大的开源Java库,专为Web开发设计,特别是在MVC模式下,用于创建复杂的表格展示。它提供了一组可重用的JSP标签,简化了在Web页面上处理表格数据的过程。DisplayTag 不仅能显示数据,还支持排序、...

    displaytag及使用方法

    DisplayTag是一个开源的Java库,专门用于在Web应用程序中创建复杂的表格。它提供了一系列的标签和功能,使得在JSP页面上展示数据变得更加容易和灵活。DisplayTag支持分页、排序、导出、国际化和自定义样式,是开发...

    displaytag应用总结

    DisplayTag 是一个强大的开源Java Web开发中的表格展示标签库,特别适用于MVC模式的应用程序。它简化了在网页上创建复杂表格的过程,提供了多种功能,如排序、分页、国际化和自定义样式等。以下是对DisplayTag应用的...

    displayTag的小例子

    DisplayTag库是一个强大的开源JSP标签库,专为创建复杂表格和数据呈现而设计。它提供了许多高级功能,如分页、排序、过滤、导出和...在实际开发中,熟练掌握DisplayTag的使用将有助于创建更加高效且易于维护的Web应用。

    displaytag的使用指南(全)

    3. **配置属性文件**:将 `displaytag-examples-1.1.war` 中的 `WEB-INF/classes/displaytag.properties` 文件复制到自己的 Web 应用程序的 `WEB-INF/classes` 目录下。 4. **放置资源文件**:将 `displaytag-...

    displaytag-1.2-bin&displaytag-1.2-src Java分页组件/插件

    "Java分页组件"和"Java分页插件"标签表明DisplayTag是专门针对Java Web应用设计的,它可以作为MVC框架(如Spring MVC)的一个插件,无缝集成到现有的项目架构中。DisplayTag不仅支持基本的分页,还提供了诸如国际化...

    displaytag模块示例

    第三个是displaytag的应用文件 两个版本的程序都可以运行 并且程序中含有数据库文件 可以导入 displaytag是一个很好的插件 网上有很多资源 可是一直找不到好的代码示例 花了一个星期熟悉整理了下 分享给大家了 ...

    displaytag标签的使用

    DisplayTag 是一个强大的开源 JSP 标签库,专门用于处理网页中的表格展示。它提供了丰富的功能,如分页、数据导出、列排序和分组等,极大地简化了网页表格的开发工作。要使用 DisplayTag,首先需要从其官方网站...

    displaytag-1.2.jar

    你可以在现在流行的web应用的MVC模式中集成DisplayTag到View层,其提供的强大表格格式化功能一定会令你爱不释手。或许上面说的有些夸张了,但是DisplayTag在表格的格式化方面表现确实出色,当然,他也只能显示表格,...

    displaytag标签使用

    这种方式通常用于快速查看对象数据,但实际应用中通常需要定制显示内容。 2. **定制列显示**: 使用`&lt;display:column&gt;`标签可以指定要显示的属性和列标题。`property`属性指定了对象的属性(对应getter方法),`...

    displaytag的使用方法

    此外,不要忘记将 `displaytag-examples-1.1.war` 中的资源文件(如 CSS、images 和 img 文件夹内容)复制到与你的 Web 应用程序同级的目录。 **二、Displaytag 使用** 1. **数据源的范围** - `pageScope`: 表示...

    displaytag详细用法(中文问题已解决)

    DisplayTag是一个开源的Java库,专门用于创建复杂的表格展示,尤其在Web应用中十分常见。这个压缩包包含了解决DisplayTag在处理中文显示时遇到的问题,以及一个专门用于编辑.properties文件的插件,使得配置更加方便...

    displaytag简单项目

    这个“displaytag简单项目”是一个基于DisplayTag库的示例应用,旨在帮助开发者理解并掌握如何在实际项目中使用DisplayTag。在这个项目中,你可以看到如何配置DisplayTag、如何创建动态表格以及如何自定义各种展示...

    displayTag1.2

    DisplayTag是Java Web开发中的一款强大且功能丰富的表格标签库,它为开发人员提供了一种高效、易用的方式来展示表格数据。DisplayTag 1.2是这个库的一个版本,包含了源码和对应的jar包,方便开发者进行查看和使用。 ...

Global site tag (gtag.js) - Google Analytics