【问题标题】:Pagination not working using display tag分页无法使用显示标签
【发布时间】:2014-03-21 14:59:51
【问题描述】:

我正在使用显示标签来显示我的结果集。 这是我实现它的方法。

<display:table name="w" pagesize="10"  export="true" />

在这里我设置了pagesize =10,当我运行应用程序时,记录的分页大小为10,但是当我单击下一页查看下一组记录时,我得到一个空的结果集。

例如,如果有 12 条记录,其中 10 条显示在第一页,当我单击下一步查看最后一页时,我得到一个空白页。 为什么会这样??

w 包含我所有记录的列表:

request.setAttribute("w", resultrechparcritere);

【问题讨论】:

  • 就个人而言,我不使用 display tag 以表格格式(也以分页方式)显示数据。虽然它有利于实现分页,但是当我们需要一些不同于它的标准的东西时,它会带来很多麻烦。这可能会导致不必要的时间浪费。此外,分页的概念应该直接在有问题的后端数据库上完成,这在从该数据库获取完整的行列表后不应该发生。
  • @user3333294:不要试图编辑我的答案来回答我,而是使用 cmets。如果现在您的问题是在每个操作调用上重新运行查询,这是另一个问题,然后应该打开另一个问题,因为这个问题是关于非工作分页的,我让它工作。您还应该通过在答案的左上角标记 V 来接受答案。并在这里参观一下:stackoverflow.com/tour
  • 因为displaytag的分页是通过requests工作的,所以每次都会重新创建action。如果您想阻止对每个请求的数据库查询,请先将结果集放入会话中,然后再检索它。还阅读我以前的消息。不同的问题=新问题,请接受这个问题,因为它已经奏效了
  • 最后我通过 sessionscope 解决了它 在动作类中:UserForm userForm = (UserForm) form; userForm.setResultrechparcritere(resultrechparcritere); return mapping.findForward(SUCCESS_RESEARCH);
  • 您的工作 JSP 代码与我的完全一样(在最初的问题中,您从一个空表开始,在我回答之后您添加了 requestURIkeepStatusuid)......奇怪的事情你做服务器端应该不影响答案正确的事实,然后考虑接受它......

标签: jsp struts2 struts jstl displaytag


【解决方案1】:

表格在处理分页时必须能够联系到Action,

那么你必须包括requestURI,以及(如果我没记错的话,非必填字段)keepStatusuid

<display:table requestURI = "myActionURL" 
               keepStatus = "true" 
                 pagesize = "10"  
                     name = "w" 
                      uid = "myTable" 
                   export = "true" />

然后,您甚至可以拦截并tweak / hack the pagination parameters by yourself,以编程方式到达特定页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多