问题描述
看了 robbin 的 应用Hibernate3的DetachedCriteria实现分页查询 的帖子。我用struts2 在 想做分页 。jsp页面的分页功能就是不能实现。action 的部分,我不会写。在action 里,ps.getPageSize();ps.getNextIndex();的值都能正常现实。但是就是jsp页面 不分页。我把action 的代码 传上public String execute() throws Exception { DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Goods.class); int pageSize = 5;int startIndex = 0;ps = goodsManager.findpageByCriteria(detachedCriteria, pageSize, startIndex);System.out.println("pspspspspsps"+ps);if(null != ps){ps.getPageSize();ps.getNextIndex();ps.getPreviousIndex();ps.getStartIndex();ps.getIndexes();ps.getItems();ps.getTotalCount();希望 哪位好心人 指点一下 谢谢我已经没有分了。所以就不能给您分了。不好意思。问题补充:谢谢 icewubin 的回答。我把问题补充以下我的findpageByCriteria(detachedCriteria, pageSize, startIndex); 的方法是按照robbin 写的。在action 出现的问题的。1,System.out.println(ps.getPageSize()); 等东西的值是可以正常显示的。2,但是 ,jsp页面 的,就是没有分页的功能。仍然是把查询的结果全部显示出来了。我觉得好像 是不是 action 和jsp 都有问题呀。我是初学者真是搞不懂 问题补充:我把action 的主要内容在发一下public String execute() throws Exception {int pageSize = 5;int startIndex = 0;DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Goods.class);if(null!=getCategory()){detachedCriteria.add(Restrictions.in(("category"), getCategory())).add(Restrictions.between(("price"), getMinPrice(),getMaxPrice())).addOrder(Order.asc("price"));}else {detachedCriteria.add(Restrictions.between(("price"), getMinPrice(), getMaxPrice())).addOrder(Order.asc("price"));}searchResult = goodsManager.findAllByCriteria(detachedCriteria);ps = goodsManager.findpageByCriteria(detachedCriteria, pageSize, startIndex);System.out.println("pspspspspsps"+ps);if(null != ps){System.out.println(ps.getPageSize());System.out.println(ps.getNextIndex());我的searchResult 是查询的结果ps时分页的结果而我jsp 调用的是 searchResult。我觉得应该把他们放在一起 再在jsp 调用 是不是这样呀????问题补充:不好意思 ps 就是PaginationSupport ps =goodsManager.findpageByCriteria(detachedCriteria, pageSize, startIndex); 而PaginationSupport 就是robbin 写的那个问题补充:谢谢您 icewubin---引用 icewubin (初级程序员) 2008-09-10 ----需要你继续提供点资料: --1.你在action中打印ps.getItems().size(),看看结果对不对。 --2.上一个试验的结果如果不对,那就你自己查原因了,findPageByCriteria方法一定有问题了。 --3.如果1中的试验结果是对的(我猜应该是对的)话,就是你这个ps传递到页面上的时候发生一些问题,那就是Struts的使用的问题了。 --4.你也可以在jsp的页面中打印ps.items.size,看看结果是多少。1,在action中打印ps.getItems().size(), 结果正常2.正像 您说的,是struts2有问题.我不知道怎么把 值传导 jsp里 searchResult = goodsManager.findAllByCriteria(detachedCriteria); 和 ps = goodsManager.findpageByCriteria(detachedCriteria, pageSize, startIndex); 我现在是 把 searchResult 的结果 传导jsp里了.我感觉是这里不对.但具体我也不知道 .\3在jsp页面打印 ps.getItems().size(), 我明天试一试谢谢问题补充:icewubin 谢谢您的提示和帮助我知道错在哪了在jsp 里 我调用的东西 调错了应该 调用 ps.getItems()谢谢有个题外话我怎么对我的问题回答的时候,必须在 问题补充 里回答这样感觉很不舒服
解决方案
需要你继续提供点资料:1.你在action中打印ps.getItems().size(),看看结果对不对。2.上一个试验的结果如果不对,那就你自己查原因了,findPageByCriteria方法一定有问题了。3.如果1中的试验结果是对的(我猜应该是对的)话,就是你这个ps传递到页面上的时候发生一些问题,那就是Struts的使用的问题了。4.你也可以在jsp的页面中打印ps.items.size,看看结果是多少。
解决方案二:
引用ps = goodsManager.findpageByCriteria(detachedCriteria, pageSize, startIndex); 实现细节应当在这个方法中,但是您的问题中描述不清,看不懂您的问题,请您说清楚您的action中到底出现了什么问题,ps到底是什么类型的对象,否则无法回答。