【问题标题】:DisplayTag pagination is not retained after sorting排序后不保留DisplayTag分页
【发布时间】:2022-01-11 11:40:42
【问题描述】:

在我遇到以下问题之前,我需要的一切都可以正常工作。 我正在使用 displayTag 来使用排序和分页。但是问题是,例如,当我在第 4 页并单击任何列进行排序时,默认情况下控件将返回到第 1 页。它应该只是第 4 页(理想情况下)。以下是我编写的代码。

display.jsp

    <div class="tableDisp">
                <display:table id="person" cellspacing="1" cellpadding="1" keepStatus="true"  class="tableDisplay"  excludedParams="*" requestURI="/getAllMember.htm" name="${command}" sort="list" pagesize="5" >

                  <display:column  title="Name" sortable="true" sortProperty="personName" >${person.personName}</display:column>
                  <display:column  title="DOB" sortable="true" sortProperty="dob" >${person.dob}</display:column>
                  <display:column  title="phone Number" sortable="true" sortProperty="phoneNo" >${person.phoneNo}</display:column>
                  <display:column  title="profile creation Date" sortable="true" sortProperty="profilecreationDate" >${person.profilecreationDate}</display:column>
                  <display:column  title="Gender" sortable="true" sortProperty="gender" >${person.gender}</display:column>

                 </display:table>
                </div>

控制器.java

    List<Person> persons = searchService.getAllPerson();
            ModelAndView mav = new ModelAndView("memberPage");
            mav.addObject("command",persons);
            return mav;

我正在使用 displayTag-1.2.jar。请帮忙。 谢谢

【问题讨论】:

    标签: jsp sorting spring-mvc pagination displaytag


    【解决方案1】:

    我假设您想要对整个列表进行排序并保留在当前页面上,而不是只对当前页面进行排序(可以通过指定 sort="page" 来完成)。

    如果是这样,您看起来很不走运。请参阅下面的演示和 cmets,其中请注意:

    当对完整列表启用排序时,页码为 如果您更改排序列或排序顺序,则会自动重置。

    http://demo.displaytag.org/displaytag-examples-1.2/example-pse.jsp?d-49653-s=0&d-49653-o=2&d-49653-p=1

    【讨论】:

    • 所以说这个要求是不可能的..?
    【解决方案2】:
    1. 将以下内容添加到displaytag.properties

      pagination.sort.skippagenumber=false
      
    2. 您需要确保

    3. 在您的操作类中,使用以下内容获取排序/页面参数

       String sPageNumber=request.getParameter(new ParamEncoder("project").encodeParameterName(TableTagParameters.PARAMETER_PAGE));<br>
       String sortCriterion=request.getParameter(org.displaytag.properties.TableProperties.getInstance(request).getPaginationSortParam());<br>
       String sortDirection=request.getParameter(org.displaytag.properties.TableProperties.getInstance(request).getPaginationSortDirectionParam());<br>
      
    4. 更改 HtmlTableWriter 的源代码,第 539 行:

       if (properties.getPaginationSkipPageNumberInSort())
           {
               href.removeParameter(properties.getPaginationPageNumberParam());
           }else {
                href.addParameter(properties.getPaginationPageNumberParam(), paginatedList.getPageNumber());
           }
      

    【讨论】:

      猜你喜欢
      • 2013-04-08
      • 2010-11-01
      • 1970-01-01
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      相关资源
      最近更新 更多