hibernate查询结果分页显示的问题!!!急!!!
问题是这样的!如图所示,我的分页查询是这样做的,当一次进入查询界面的时候,系统默认是查询所有的用户信息,当用户输入查询条件的时候,按照用户的条件进行分页查询,但是问题来了...
问题是这样的!如图所示,我的分页查询是这样做的,当一次进入查询界面的时候,系统默认是查询所有的用户信息,当用户输入查询条件的时候,按照用户的条件进行分页查询,但是问题来了,当用户输入了查询条件,却没有点击查询,而是直接点击下一页,这样就出现错误,因为我的翻页,是将用户所有输入的查询条件提交到后台进行分页查询的,没有判断是否点击了查询,这样做似乎是没有问题的(假如一切按正常操作),但是我怎么样区分用户是否点击了“查询”呢?假如用户点击了查询,那么他再点击翻页,我就按照他的查询条件分页查询,假如没有点击查询,我就查询所有的用户!请问我该如何做?图片上的所有查询条件是一个from,我用js控制他的action!查询条件是一个javaBean。解决问题追加积分……感谢,在线等……
展开
4个回答
展开全部
你呢
肯定要建几个隐藏域了
要保存你上一次查询的查询条件要保存下来的 点下一页呢 你就要通过js呢 去隐藏域重新获取上一次的查询条件再去查 然后显示也就是说 你的url里呢 就要加入传值了,要不它后台就会默认从表单里面取了
function ajx(n){
var flag=document.getElementById("flag").value;
if(flag=="true"){
var jczl1=document.getElementById("jczl1").value;
var jx1=document.getElementById("jx1").value;
var ch1=document.getElementById("ch1").value;
var xc1=document.getElementById("xc1").value;
var fbrq21=document.getElementById("fbrq21").value;
var fbrq11=document.getElementById("fbrq11").value;
var obj=document.forms[0];
obj.action="formInfo.do?flag='false'&jczl="+jczl1+"&jx="+jx1+"&ch="+ch1+"&xc="+xc1+"&fbrq1="+fbrq11+"&fbrq2="+fbrq21+"&nowpage="+n;
obj.submit();
}
<%if(request.getAttribute("jczl")!=null){ %>
<input type="hidden" id="jczl1" value="<%=request.getAttribute("jczl").toString() %>">
<input type="hidden" id="jx1" value="<%=request.getAttribute("jx").toString() %>">
<input type="hidden" id="ch1" value="<%=request.getAttribute("ch").toString() %>">
<input type="hidden" id="xc1" value="<%=request.getAttribute("xc").toString() %>">
<input type="hidden" id="fbrq11" value="<%=request.getAttribute("fbrq1").toString() %>">
<input type="hidden" id="fbrq21" value="<%=request.getAttribute("fbrq2").toString() %>">
<%
}
这样明白了吗?
肯定要建几个隐藏域了
要保存你上一次查询的查询条件要保存下来的 点下一页呢 你就要通过js呢 去隐藏域重新获取上一次的查询条件再去查 然后显示也就是说 你的url里呢 就要加入传值了,要不它后台就会默认从表单里面取了
function ajx(n){
var flag=document.getElementById("flag").value;
if(flag=="true"){
var jczl1=document.getElementById("jczl1").value;
var jx1=document.getElementById("jx1").value;
var ch1=document.getElementById("ch1").value;
var xc1=document.getElementById("xc1").value;
var fbrq21=document.getElementById("fbrq21").value;
var fbrq11=document.getElementById("fbrq11").value;
var obj=document.forms[0];
obj.action="formInfo.do?flag='false'&jczl="+jczl1+"&jx="+jx1+"&ch="+ch1+"&xc="+xc1+"&fbrq1="+fbrq11+"&fbrq2="+fbrq21+"&nowpage="+n;
obj.submit();
}
<%if(request.getAttribute("jczl")!=null){ %>
<input type="hidden" id="jczl1" value="<%=request.getAttribute("jczl").toString() %>">
<input type="hidden" id="jx1" value="<%=request.getAttribute("jx").toString() %>">
<input type="hidden" id="ch1" value="<%=request.getAttribute("ch").toString() %>">
<input type="hidden" id="xc1" value="<%=request.getAttribute("xc").toString() %>">
<input type="hidden" id="fbrq11" value="<%=request.getAttribute("fbrq1").toString() %>">
<input type="hidden" id="fbrq21" value="<%=request.getAttribute("fbrq2").toString() %>">
<%
}
这样明白了吗?
更多追问追答
追问
查询条件是保存下来的!有保存!就是每查询一次,刚才输入查询的条件都在,我点击下一页的时候把上次的查询条件提交到后台!
追答
点击查询呢 就正常的只用URL去提交,这样呢你后台获取到的就是你页面上能看到的框框里的条件值了,
点击下一页呢 你就用 URL + hidden里面的值组成URL 组合去传值,这样取到的就是你传在url后面的值了,就不会去页面取值了。就像下面
obj.action="formInfo.do?flag='false'&jczl="+jczl1+"&jx="+jx1+"&ch="+ch1+"&xc="+xc1+"&fbrq1="+fbrq11+"&fbrq2="+fbrq21+"&nowpage="+n;
展开全部
首先你需要判断,而且是必须判断了,如果没有查询,也就是list.size==0的时候,点击下一页就让他刷新或者直接调用一下页面。
或者你也可以这样做的。
你在默认的时候就查询出所有数据在主页,这样主页不就是有数据了吗?
你点击下一页的时候就把相关需要的查询条件直接传递过去。在后台方法拿到相关条件查询。
或者你也可以这样做的。
你在默认的时候就查询出所有数据在主页,这样主页不就是有数据了吗?
你点击下一页的时候就把相关需要的查询条件直接传递过去。在后台方法拿到相关条件查询。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实提交和下一页时同一个方法,别告诉我你写了两个方法
在这个提交中需要提交翻页的页数和翻页的起始位置,还有其他条件
在这个提交中需要提交翻页的页数和翻页的起始位置,还有其他条件
更多追问追答
追问
是一个方法啊!肯定是一个方法了!你说的我都提交到后台了!
追答
那这样点下一次和点查询没什么区别啊,直接点下一次,那么所有的查询条件为空呗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你的下一页是否用了表单提交的方式提交数据。你可以换种提交方式吗。用?传参。 至于页面的参数用javascript 获取。 onclick ='window.location=' .....jsp ? a='+document.getElementbyid () ' 这样提交应该可以避免你那种点击查询按钮提交
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询