求教jsp多条件查询下一页的问题

star890 2012-03-18 12:16:17
请问jsp多条件查询 点击查询后显示所查询的内容并进行分页 如何做到在点击下一页的时候不是显示所有内容 而是显示查询的内容 新手还望见谅!
...全文
428 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq737604771 2012-03-19
  • 打赏
  • 举报
回复
在你每次查询时(带条件的)是把你的条件放在request中 。 每点击下一页或上一页时就判断条件是否有值如果有就带条件。 没就不要加了。
star890 2012-03-19
  • 打赏
  • 举报
回复
可能我得方法不够好 那你们在处理的时候都是用什么方法来处理的呢 就是多条件查询分页的问题 我目前用的是hibernate来进行查询分页的 求教了
star890 2012-03-19
  • 打赏
  • 举报
回复
不好意思啊 呵呵 这个问题我想过 但是还是没能理解 说通俗点吧 下面是从searchinfo页面接收查询信息的servlet处理代码public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();

//初始化查询参数类
SearchInfo searchinfo=new SearchInfo();

/*
* 接收前台传过来的查询参数
*/
//电影名称
String filmname=new String(request.getParameter("filmname").getBytes("ISO-8859-1"),"GBK");
if(filmname==null){
searchinfo.setfilmname("is not null");
}else{
searchinfo.setfilmname(filmname);
}
//电影类型id
String typeid=new String(request.getParameter("filmtype").getBytes("ISO-8859-1"),"GBK");
if(typeid.equals("全部")){
searchinfo.setTypeid("is not null");
}else{
searchinfo.setTypeid(typeid);
}
//主演
String actor=new String(request.getParameter("actor").getBytes("ISO-8859-1"),"GBK");
if(actor==null){
searchinfo.setActor("is not null");
}else{
searchinfo.setActor(actor);
}
//导演
String director=new String(request.getParameter("director").getBytes("ISO-8859-1"),"GBK");
if(director==null){
searchinfo.setDirector(" is not null");
}else{
searchinfo.setDirector(director);
}
//价格起始
String ticketpricestart_string=request.getParameter("ticketprice_start");
//价格结束
String ticketpriceend_string=request.getParameter("ticketprice_end");
if(ticketpricestart_string==null||ticketpricestart_string.equals("")){
searchinfo.setTicketpricestart(0);
}else{
Integer ticketpricestart=Integer.parseInt(ticketpricestart_string);
searchinfo.setTicketpricestart(ticketpricestart);
}

if(ticketpriceend_string==null||ticketpriceend_string.equals("")){
searchinfo.setTicketpriceend(1000000);
}else{
Integer ticketpriceend=Integer.parseInt(ticketpriceend_string);
searchinfo.setTicketpriceend(ticketpriceend);
}

//将查询参数放入request中并传入到下一个处理servlet request.setAttribute("searchinfo", searchinfo);
request.getRequestDispatcher("SearchAllServlet").forward(request, response);

out.flush();
out.close();
}
红色的部分就是把查询条件的对象传到处理界面
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();
//接收传来的查询参数
SearchInfo searchinfo=new SearchInfo();
searchinfo=(SearchInfo)request.getAttribute("searchinfo");
//如果searchinfo查询参数类为空则表示不是从查询页面跳转过来则显示全部影片信息
if(searchinfo==null){
try{
//根据分页获取房屋信息
int curPage=0;
if(request.getParameter("curPage")==null){
curPage=1;
}else{
curPage=Integer.parseInt(request.getParameter("curPage"));
}
PageBean Rpagebean=new PageBean();
Rpagebean.setCurrentPage(curPage);
Rpagebean.setPageSize(2);

CinemaServerBiz csb=new CinemaServerBiz();
PageBean pagebean=new PageBean();
pagebean=csb.getAllFilmByPage(Rpagebean);

request.setAttribute("pagebean", pagebean);

request.getRequestDispatcher("ShowInfo.jsp").forward(request, response);
}catch(Exception e){
e.printStackTrace();
}
}
//如果不为空则表示是从查询页面跳转过来则进行条件查询
else{
try{
//根据分页获取房屋信息
int curPage=0;
if(request.getParameter("curPage")==null){
curPage=1;
}else{
curPage=Integer.parseInt(request.getParameter("curPage"));
}
PageBean Rpagebean=new PageBean();
Rpagebean.setCurrentPage(curPage);
Rpagebean.setPageSize(2);

CinemaServerBiz csb=new CinemaServerBiz();
PageBean pagebean=new PageBean();
pagebean=csb.getFilmsBySearchPage(searchinfo, Rpagebean);

request.setAttribute("pagebean", pagebean);
request.setAttribute("searchinfo","searchinfo"); request.getRequestDispatcher("ShowInfo.jsp").forward(request, response);
}catch(Exception e){
e.printStackTrace();
}
}
out.flush();
out.close();
}

红色的部分我是打算把查询的条件传到前台显示的jsp页面然后 再从页面中传回来 这样的话就做到了又查询条件的时候就是传查询条件 没查询条件的时候就不传则显示所有的信息 但是问题到了 前台jsp页面如何传递一个java类对象到servlet呢
脉动回来 2012-03-18
  • 打赏
  • 举报
回复
将分页的信息传到后台,用sql的limit或者是对结果集进行操作。
彡颵爺 2012-03-18
  • 打赏
  • 举报
回复
你的意思是要在点击下一页的时候显示的是以上一页的搜索条件为准进行,那么你把上次的搜索条件,不管一个还是多个按你上次传送的方式以前传过去啊,并要把当前页号传过去,按照你预定的页面大小来分页就ok了
或者你这样理解,虽然每次查询都是单独的,但这这个过程中你的查询条件是不变的,那么结果集就是一样的,这样你就把它当作无条件分页一样去做就可以了,无条件查询只是条件查询的一个特例,只需要一个dao方法就可以完成条件查询和无条件查询

81,117

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧