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

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条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)