大家好,小弟刚开始学struts+hibernate,最近在做一个多条件查询分页显示的问题,请各位大侠帮忙解决下。查询结果要分页显示,翻页的时候要将查询条件传入下一个页面,如果只是简单的查询,传递一个sql语句即可,但是有很多条件的查询呢?一种方式是采用动态拼装sql方式,然后再结果页面提交该sql以达到翻页效果。但是小弟现在想用hibernate里面criteria方式来查询,用户数据第一次查询时组装到了from里面,现在翻页的时候再到form里面去取就都变成null了,我应该如何在form里面把用户填入的查询条件延续下去???我想到的是:
我想到的是
1.在url后加参数(这种方式不是在,参数多不好控制)
2.通过form的隐藏元素(在结果页面再取所有的查询字段,再次提交)
3.写入session,(造成session空间浪费,还需要清理)我觉得应该不会这么麻烦,哪位大侠指点下迷津啊。

解决方案 »

  1.   

    放入hidden标签,把查询参数传递进去。
      

  2.   

    前几天有人指点我说,翻页的时候可以直接再从form中去取数在form中的是不会变的,但是我在做的时候却变成null了,我是想用从form中去取得方式,这比较方便,不知道有没有哪个大侠知道怎么做才行,如果有参考的代码发给我下([email protected]),小弟不胜感激。
      

  3.   

    你在页面里面把form的对应属性放到hidden标签里面,再次到action中时候对应的属性还是在的。
    如:
    <html:hidden property="你的查询条件"/>
      

  4.   

    我建议你使用dwr来实现分页,比较好
      

  5.   

    sunny319非常感谢,你这个方式是可以实现,我还有疑问是,如果不用hidden提交,直接从第一次提交上来的form里面取数据行吗,form里面的数据生命周期是多久啊,是仅仅在一个请求(request)之内吗?
      

  6.   

    zgf19821202dwr来实现分页没有试过,这个有没有什么好点的可以学习下啊。刚才找了下感觉都比较零散的。
      

  7.   

    直接从第一次提交上来的form里面取数据行吗。
    不行的,因为你第一次查询和第二次查询已经不是同一个request了。form的周期,关键是看你在struts—config文件中对action中对form的配置,一般配置的是scope=“request”哈。
      

  8.   

    问题已经解决,非常感谢zgf19821202  Sunny319