hibernate查询结果分页显示的问题!!!急……

问题是这样的!如图所示,我的分页查询是这样做的,当一次进入查询界面的时候,系统默认是查询所有的用户信息,当用户输入查询条件的时候,按照用户的条件进行分页查询,但是问题来了... 问题是这样的!如图所示,我的分页查询是这样做的,当一次进入查询界面的时候,系统默认是查询所有的用户信息,当用户输入查询条件的时候,按照用户的条件进行分页查询,但是问题来了,当用户输入了查询条件,却没有点击查询,而是直接点击下一页,这样就出现错误,因为我的翻页,是将用户所有输入的查询条件提交到后台进行分页查询的,没有判断是否点击了查询,这样做似乎是没有问题的(假如一切按正常操作),但是我怎么样区分用户是否点击了“查询”呢?假如用户点击了查询,那么他再点击翻页,我就按照他的查询条件分页查询,假如没有点击查询,我就查询所有的用户!请问我该如何做?图片上的所有查询条件是一个from,我用js控制他的action!查询条件是一个javaBean。解决问题追加积分……感谢,在线等…… 展开
 我来答
百度网友179b4a683c
2011-12-06 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:121万
展开全部
仔细看了一下,其实很简单,如楼主所说默认是查询全部,而点击下一页是将查询条件提交后面分页
,可以写一个查询记录个数的方法getCountForPage();再单独写一个check方法参数为表单数据,判断表单所有数据是否为空,如果为空就查询所有,else条件查询, 返回一个查询条件的String 类型,在查询记录个数前调用check方法,得到记录个数,根据记录个数可以得到页数,将页数和check方法返回的条件传给查询记录方法,在查询记录里面再调用一个分页查询方法,然后再将表单中的查询条件保存在request范围中,传到jsp页面中显示。这样就不会页数不对的错误了,方法设置的有问题,改一下。
public List<HashMap<String, Object>> getResultList(Form form, int offset) {//表单,页数
String hql="From 表 where 1=1";
hql+=check(form);
getListForPage(hql,offset);返回查询结果
}
public List getListForPage(String hql,int offset); //根据hql和页数查询记录

public int getCount(Form form); //查询的记录个数

public String check(Form form);//这个返回的是条件 and ... and ...
追问
虽然你说的不对,因为你无法知道用户是否点击了查询,他要是点击了就提交数据,每点击就不提交!还是谢谢你回答,我的问题解决了,还是要用隐藏域去控制!
jennia菊菊
2011-12-05 · TA获得超过632个赞
知道小有建树答主
回答量:710
采纳率:75%
帮助的人:347万
展开全部
你可以将查询form中的条件全部传到后台,比如用json串(全局的,或者作为表格的一个属性),当第一次进入查询页面时条件也都传,只不过没有值,当用户点了“查询”按钮时将json串中条件赋值。
在action中将表格的这个json串拿出来,判断是否有值传入,有值传入则有查询条件,没值传入的则不作为查询条件
追问
你想啊,第一次进入查询界面,出来的是所有的用户的信息,共计5页,现在假如用户输入姓名:admin,意思查询姓名为admin的用户(共计1页),但是他没有点击查询,直接点击下一页,那么下一页就会把用户输入的admin提交到后台去查询,查询结果为一页,但是页面显示有5页(因为没有点击查询,所以页数不会改变),这样自然会报错,因为页数不对!!
追答
没有点击查询就不改变json串中{name:""}name的值啊,这样传到后台就是{name:""},你判断为空了后就不作为查询条件
当用户点击“查询”时,从form中读取name,如果有值就改变json串为{name:"admin"},(每次点击查询时都改变json)
在action中用jsonObject读取name发现有值就作为查询条件,你把这个json做为表格的一个属性一直带着,相当于一个全局变量就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
犹芝兰D6
2011-12-05 · 超过10用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:15.4万
展开全部
下一页的Action和点击查询的Action是同一个么,是的话,查询方法一般是execute方法里,这样把下一页的操作另写一个方法试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wufei000
2011-12-05
知道答主
回答量:3
采纳率:0%
帮助的人:3.1万
展开全部
首先判断查询条件是否有值,如果有保存到session中,下次再查依然判断查询条件,如果有值从session中取出原来的值判断是否相同,如果相同则执行分页查询,如果不同则表示新条件查询,在session中重新保存。 如果没有值,session不动,执行分页查询
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式