你看
int currentPage=(currentPageStr==null)?0:Integer.parseInt(currentPageStr);
你看你自己的这个三元运算符,当为空的时候为0qy.setFirstResult((currentPage-1)*pageSize);这个时候(currentPage-1)*pageSize 不为负了吗改成这样,当前页 默认为1
int currentPage=(currentPageStr==null)?1:Integer.parseInt(currentPageStr);我建议你吧分页信息封装成对象,你这么写条理性太差
int currentPage=(currentPageStr==null)?0:Integer.parseInt(currentPageStr);
你看你自己的这个三元运算符,当为空的时候为0qy.setFirstResult((currentPage-1)*pageSize);这个时候(currentPage-1)*pageSize 不为负了吗改成这样,当前页 默认为1
int currentPage=(currentPageStr==null)?1:Integer.parseInt(currentPageStr);我建议你吧分页信息封装成对象,你这么写条理性太差
int pageSize=5;
int currentPage=2;
Query qy=session.createQuery("from Product");
int count=qy.list().size();
int totalPage=(count-1)/5+1;
System.err.print(totalPage);
qy.setFirstResult((currentPage-1)*pageSize);
qy.setMaxResults(pageSize);
List list=qy.list();
for(int i=0;i<list.size();i++){
Product product=(Product)list.get(i);
System.err.println(product.getMember().getMemberName());
}报错:
[18:37:47.039] Dispatch[/product] to method pagination returned an exception
[18:37:47.039] java.lang.reflect.InvocationTargetException
[18:37:47.039] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[18:37:47.039] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[18:37:47.039] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[18:37:47.039] at java.lang.reflect.Method.invoke(Method.java:324)
[18:37:47.039] at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
[18:37:47.039] at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)
[18:37:47.039] at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
[18:37:47.039] at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
[18:37:47.039] at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
[18:37:47.039] at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
[18:37:47.039] at javax.servlet.http.HttpServlet.service(HttpServlet.java:115)
[18:37:47.039] at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
[18:37:47.039] at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106)
[18:37:47.039] at com.filters.Character.doFilter(Character.java:24)
[18:37:47.039] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
[18:37:47.039] at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
[18:37:47.039] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
[18:37:47.039] at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:268)
[18:37:47.039] at com.caucho.server.port.TcpConnection.run(TcpConnection.java:389)
[18:37:47.039] at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:507)
[18:37:47.039] at com.caucho.util.ThreadPool.run(ThreadPool.java:433)
[18:37:47.039] at java.lang.Thread.run(Thread.java:534)
[18:37:47.039] Caused by: java.lang.NoClassDefFoundError: antlr/ANTLRException
[18:37:47.039] at org.hibernate.hql.ast.ASTQueryTranslatorFactory.createQueryTranslator(ASTQueryTranslatorFactory.java:35)
[18:37:47.039] at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:72)
[18:37:47.039] at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
[18:37:47.039] at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
[18:37:47.039] at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
[18:37:47.039] at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
[18:37:47.039] at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
[18:37:47.039] at com.jgssdw.product.service.ProductDuration.pagination(ProductDuration.java:58)
[18:37:47.039] at com.jgssdw.product.action.ProductAction.pagination(ProductAction.java:41)
[18:37:47.039] ... 22 more
qy.setFirstResult((currentPage-1)*pageSize);
qy.setMaxResults(pageSize);
这两句就正确了!