使用displaytag的时候遇到一个问题,就是加入分页的属性pagesize的时候
第一页的内容可以正常显示,可是点击next的时候却提示“Nothing found to display. ”不能正常显示下一页内容。请问这个分页问题怎么解决呢?

解决方案 »

  1.   

    display tag是采用内存分页.
    如果你查询出来的结果集只有1页。而你的页数为总页数。
    这样就会出现你上面的情况
    即:你放在内存中的结果集为10条(每页10条) ,而总的pagesize为3
    那么,在分页的时候第2、3页都将没有数据...更多信息请参考官方API:http://displaytag.sourceforge.net/1.2/
      

  2.   

    2楼的朋友 能说的明白些嘛??我的结果list中有4条记录,我设置的pagesize=2只有第一页有显示,点击next就出现“Nothing found to display. ”
      

  3.   

    当你的查询参数中有中文参数的时候,分页就不可用了,因为display-tab在用到中文查询时会出现问题,最简单的解决方法:
    如果你用的是tomcat的话,可以修改server.xml
    <Connector port="8080" protocol="HTTP/1.1"...
    中加入
    URIEncoding="gbk",
      

  4.   

    还是不行,我的display table是这样的<display:table name="${systemUsersList}" cellspacing="0" cellpadding="0" pagesize="2">
       <display:column property="id" title="编号"></display:column>
       <display:column property="username" title="职员"></display:column>
       <display:column property="totalTarget" title="指标"></display:column>
       <display:column property="totalFinish" title="完成值"></display:column>
    </display:table>就是单单显示那个list中的内容,为什么老是第二页就没有数据,改了tomcat的配置也是一样。。
      

  5.   

    两种解决方法:
    1.把systemUsersList放在session中,即session.setAttribute("systemUsersList");
    <display:table name="${systemUsersList}" cellspacing="0" cellpadding="0" pagesize="2">改成 
    <display:table name="sessionScope.systemUsersList" cellspacing="0" cellpadding="0" pagesize="2"> 2.request.setAttribute("systemUsersList");
    <display:table name="${systemUsersList}" cellspacing="0" cellpadding="0" pagesize="2">改成
    <display:table name="systemUsersList" cellspacing="0" cellpadding="0" pagesize="2" requestURI="你取得数据的页面地址">

    <display:table name="systemUsersList" cellspacing="0" cellpadding="0" pagesize="2" requestURI="xxx.do?method=find">
    建议第一种,还有一种就不和你说了,不适合你用,也麻烦!
      

  6.   

    谢谢 mxm_1123 ,问题已经解决,原来觉得自己再去写分页代码好麻烦,才用的displaytag , 原来点击下一页的时候 还需要再将list查询一遍,或者放在session中 ,就不会一次请求丢失谢谢各位了~