看了 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();
希望 哪位好心人 指点一下
谢谢
我已经没有分了。所以就不能给您分了。
不好意思。
[b]问题补充:[/b]
谢谢 icewubin 的回答。
我把问题补充以下
我的findpageByCriteria(detachedCriteria, pageSize, startIndex);
的方法是按照robbin 写的。
在action 出现的问题的。
1,System.out.println(ps.getPageSize()); 等东西的值是可以正常显示的。
2,但是 ,jsp页面 的,就是没有分页的功能。仍然是把查询的结果全部显示出来了。
我觉得好像 是不是 action 和jsp 都有问题呀。
我是初学者
真是搞不懂
[b]问题补充:[/b]
我把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 调用
是不是这样呀????
[b]问题补充:[/b]
不好意思
ps 就是PaginationSupport ps =goodsManager.findpageByCriteria(detachedCriteria, pageSize, startIndex);
而PaginationSupport 就是robbin 写的那个
[b]问题补充:[/b]
谢谢您 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(), 我明天试一试
谢谢
[b]问题补充:[/b]
icewubin 谢谢您的提示和帮助
我知道错在哪了
在jsp 里
我调用的东西 调错了
应该 调用 ps.getItems()
谢谢
有个题外话
我怎么对我的问题回答的时候,
必须在 问题补充 里回答
这样感觉很不舒服