huobao89
2008-09-10 11:34
浏览 195
已采纳

hibernate DetachedCriteria 查询问题

看了 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()

谢谢

有个题外话
我怎么对我的问题回答的时候,
必须在 问题补充 里回答
这样感觉很不舒服

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • icewubin 2008-09-10 17:06
    已采纳

    需要你继续提供点资料:
    1.你在action中打印ps.getItems().size(),看看结果对不对。
    2.上一个试验的结果如果不对,那就你自己查原因了,findPageByCriteria方法一定有问题了。
    3.如果1中的试验结果是对的(我猜应该是对的)话,就是你这个ps传递到页面上的时候发生一些问题,那就是Struts的使用的问题了。
    4.你也可以在jsp的页面中打印ps.items.size,看看结果是多少。

    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题