`
YiSingQ
  • 浏览: 88133 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

DisplayTag分页

 
阅读更多
DisplayTag在表格数据显示,排序,生成报表,分页,包括数据的格式化有着强大的功能。
使用DisplayTag可以使得程序的前台开发更容易,更方便。很多的功能可以通过官方网站来获得相关的信息。

因为自从DisplayTag在去年发布以后,到现在没有新的版本,所以在程序的开发过程中,有一些限制,好在都有相关的方法进行替代。

Multiple Parameters:

一般的程序在DisplayTag构造link,都需要传递多个参数,当使用Decorator的时候,未免会给程序的维护带来很大的困难,
DisplayTag在使用 paramId在传递参数的时候只能传递一个参数,这给大多数的程序处理带来了不便,
可以通过修改Column类中的private Href getColumnHref(String columnContent) throws ObjectLookupException方法来达到目的,
很多人已经提出相关的解决方案,见http://jira.codehaus.org/browse/DISPL-120

但是毕竟没有官方的release版本,这样同样对以后的维护带来不便。最快也是最简洁的办法就是通过JSTL来构造link,
这种方法不再限制只能传递一个参数,给程序的处理带来了方便。使用Struts2 , JSTL和DisplayTag结合,构造link会使程序更易维护。
下面是简短的JSTL和DisplayTag结合在一起的方法。

 <display:table name="jobz" class="simple" id="row" >
  <display:column  titleKey="label.global.actions" >
             <c:url var="viewurl" value="/viewJobDetail.action">
                     <c:param name="name" value="${row.name}"/>
                     <c:param name="groupName" value="${row.group}"/>
             </c:url>
             <c:url var="exeurl" value="/viewJobDetail.action">
                     <c:param name="name" value="${row.name}"/>
                     <c:param name="groupName" value="${row.group}"/>
                     <c:param name="executeJobAction" value="execute"/>
             </c:url>
             <c:url var="editurl" value="/viewJobDetail.action">
                     <c:param name="name" value="${row.name}"/>
                     <c:param name="groupName" value="${row.group}"/>
                     <c:param name="editAction" value="edit"/>
             </c:url>
      <a href='<c:out value="${viewurl}"/>'><fmt:message key="label.global.view"/></a> |
      <a href='<c:out value="${editurl}"/>'><fmt:message key="label.global.edit"/></a> |
      <a href='<c:out value="${exeurl}"/>'><fmt:message key="label.global.execute"/></a> &nbsp;
  </display:column> 
 
  <display:column property="group" titleKey="label.job.group" sortable="true"   />
  <display:column property="name" titleKey="label.job.name" sortable="true"  />
  <display:column property="description" titleKey="label.job.description" />
  <display:column property="jobClass" titleKey="label.job.jobClass" sortable="true"  />
</display:table>


通过TableID,我们可以或得相关的数据的值,并动态的生成相关的连接,


<display:table id="hello" requestURI="hello.action" pagesize="10">
<display:column title="Entity">
      <c:url var="exeurl" value="/other.action">
      <c:param name="entityName" value="${hello.entity}" />
      </c:url>

      <a onclick="highlightElem(this,'hello')" target="myFrame" class="linkBlue" href='<c:out value="${exeurl}"/>'><c:out value="${hello.entity}"/>
      </a>
</display:column>
<display:table/>


DisplayTag 分页

DisplayTag在分页的时候,Url会出现诸如d-8271310-p=3这样的参数,d-8271310-p是通过Encode tableID(一个String型的常量)产生的。如果我们需要维护页面的page的状态,这一点很重要。下面是相关的代码。
HttpServletRequest request=(HttpServletRequest)ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);

 String pageNo=request.getParameter((new org.displaytag.util.ParamEncoder(tableID).encodeParameterName(org.displaytag.tags.TableTagParameters.PARAMETER_PAGE)));


我们就可以获得pageNo 3了, new org.displaytag.util.ParamEncoder(tableID).encodeParameterName(org.displaytag.tags.TableTagParameters.PARAMETER_PAGE))会生成像d-8271310-p这样的参数.

分享到:
评论
2 楼 雨天小虫 2011-04-28  
youyiming 写道
您好,我有个问题请教一下,displaytag中,你用request.getParameter((new org.displaytag.util.ParamEncoder(tableID).encodeParameterName(org.displaytag.tags.TableTagParameters.PARAMETER_PAGE)));  来获得page的值,我在网上看到有直接用request.getParameter("page");来获得page的值的,而且我现在用encode tableid的方式获取不到,直接用request.getParameter("page");的方式能获得,想问下,这两种方式分别在什么样的情况下使用?


显然,你用了外部排序/分页, 所以会有"page"这个参数
1 楼 youyiming 2010-07-12  
您好,我有个问题请教一下,displaytag中,你用request.getParameter((new org.displaytag.util.ParamEncoder(tableID).encodeParameterName(org.displaytag.tags.TableTagParameters.PARAMETER_PAGE)));  来获得page的值,我在网上看到有直接用request.getParameter("page");来获得page的值的,而且我现在用encode tableid的方式获取不到,直接用request.getParameter("page");的方式能获得,想问下,这两种方式分别在什么样的情况下使用?

相关推荐

    displaytag 分页标签 中文化

    NULL 博文链接:https://wooden-baby.iteye.com/blog/494060

    displaytag 分页的简单例子(附源代码)

    display tag 分页例子中用到的有关display tag lib的jar包,把这些jar包拷贝到WEB-INF/lib中例子就可以运行了。 博文链接:https://zhou568xiao.iteye.com/blog/192366

    displayTag分页插件及配置文档

    改装后的displayTag分页插件,解决中文问题,内置帮助文档和示例文件及jar包,比较好用,如果不满足你的需求请不要砸砖 补充: csdn附件不能修改,jsp+servlet分页时有bug,请注意查询所有的serlvet不支持带参数,即...

    DisplayTag分页资料整理.chm

    个人学习收集网上资料辛苦整理而成. DisplayTag分页资料整理.chm DisplayTag 分页 chm java taglib

    displaytag 分页模版资料 JSP

    在提供的资料中,"displaytag分页模版使用说明书.xls"可能包含了一份详细的使用指南,涵盖如何配置DisplayTag,如何在JSP页面中嵌入标签,以及如何实现各种高级功能。这份文档将指导开发者了解DisplayTag的配置文件...

    一个完美的displaytag分页控件的例子

    这个"一个完美的displaytag分页控件的例子"显然展示了如何有效地利用DisplayTag库来实现一个美观且功能丰富的分页表格。 在JSP(JavaServer Pages)开发中,DisplayTag是一个常用的标签库,它提供了许多预定义的...

    displaytag分页模版使用说明书

    displaytag分页模版使用说明书

    Displaytag实现分页

    Displaytag 是一个开源的 Java 框架,用于在 Web 应用中生成表格和实现分页、排序等功能。它简化了在 JSP 页面中处理数据表的复杂性,提供了丰富的定制选项。以下是对 Displaytag 实现分页的详细解释: 1. **下载与...

    07java培训displaytag分页实例六.doc

    07java培训displaytag分页实例六

    Struts2 DisplayTag 分页

    DisplayTag是一个功能强大的开源库,主要用于生成表格和提供分页功能,而Struts2则是一个MVC框架,用于处理用户请求和业务逻辑。将两者整合可以实现高效、美观的分页效果。 首先,我们需要了解Struts2的基本架构。...

    displaytag分页模版

    displaytag分页模版

    displaytag分页jar包和使用说明

    DisplayTag是Java Web开发中的一款强大且功能丰富的表格和分页控件库,它极大地简化了在JSP页面中处理复杂表格和实现分页的工作。这个压缩包文件包含的就是DisplayTag的相关jar包以及可能的使用说明文档,对于开发...

    displayTag 分页

    DisplayTag 是一个非常受欢迎的开源Java Web开发框架中的分页组件。它以其简洁的使用方式和强大的功能,被广泛应用于各种Web应用项目中,尤其是在处理大量数据展示时,能够有效地提高用户体验,减轻服务器压力。 ...

    displaytag分页和鼠标经过变色功能

    Displaytag 是一个强大的开源Java库,用于创建复杂的HTML表格,包括分页、排序、过滤等功能。在Web开发中,为了提升用户体验,常常需要在表格中实现鼠标悬停时行变色的效果。由于Displaytag 默认并不支持这个功能,...

    displaytag,pager-taglib 分页包

    Displaytag和Pager-taglib是两个在Java Web开发中常用的分页库,主要用于处理大量数据的显示,提升用户体验,减轻服务器压力。这两个库都是基于JSP标签库(Tag Library)实现的,可以方便地集成到Spring、Struts等...

Global site tag (gtag.js) - Google Analytics