日期:2014-05-18  浏览次数:20704 次

displaytag无法实现分页
不知道为什么只要点击下一页就会报错。报的错误是  
org.apache.jasper.JasperException:   fromIndex   =   -20  
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)  
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)  
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)  
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)  


root   cause  

java.lang.IndexOutOfBoundsException:   fromIndex   =   -20  
java.util.SubList. <init> (AbstractList.java:703)  
java.util.RandomAccessSubList. <init> (AbstractList.java:861)  
java.util.AbstractList.subList(AbstractList.java:570)  
org.displaytag.pagination.SmartListHelper.getListForPage(SmartListHelper.java:219)  
org.displaytag.pagination.SmartListHelper.getListForCurrentPage(SmartListHelper.java:200)  
org.displaytag.tags.TableTag.setupViewableData(TableTag.java:1525)  
org.displaytag.tags.TableTag.doEndTag(TableTag.java:1198)  
org.apache.jsp.show_jsp._jspx_meth_display_table_0(show_jsp.java:158)  
org.apache.jsp.show_jsp._jspService(show_jsp.java:99)  
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)  
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)  
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)  
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)  
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)  
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)  

我的jsp页面显示很简单。应该没有错误。  
后台传递的list是用hibernate做的。不知道是不是这的错误。  
String   hql= "from   Gebiao   as   g ";  
Query   q=HibernateSessionFactory.getSession().createQuery(hql);  
List   list=q.list();  
request.setAttribute( "show ",   list);  
request.getRequestDispatcher( "/show.jsp ").forward(request,response)   ;


------解决方案--------------------
这是我第三次看同一个问题了
java.lang.IndexOutOfBoundsException 报错是就是list越界了

检查下你的LIST吧不用标签用跌代看下里面数据

------解决方案--------------------
你得确定你的List对象是VO还是PO,一般来说,如果你没在使用OpenSession in view那么应该是VO,VO是不会有问题。而且你检查你的分页action,看看调用的连接有什么参数没有带?也就是说和你直接调用的代码有没有不一致?
------解决方案--------------------
你的list中有错误,传递过来