我用jsp+servlet+javabean做了一个小项目,在组合查询(多条件查询)中,查询出来的结果在同一个页面的下面显示并把查询结果做了分页, 问题是:我翻到查询结果某一页,修改它其中的一列,跳到修改页面,修改成功后,点击提交,它调回到组合查询页面,而不能跳到组合查询页面查询出结果的某一页,分页中在第*页修改或删除后,页面会返回到列表第一页,而不是返回修改和删除的那一页。求高手解答,小弟感谢了。

解决方案 »

  1.   

    你可以在执行操作的时候同时将你的当前页值传到servlet,这样在你跳转页面时候,直接将值赋给
    currentPage,这样就可以实现你想要的效果。
      

  2.   

    问题是修改完后,点击提交,要到servlet处理修改,修改完成后,跳到了多条件查询页面,而不是有查询结果的页面,我传一个currentPage没有作用,或者你能说更详细点,我太笨了。
      

  3.   

    currentPage 确实可以  修改成功后 你跳转到 有查询结果的页面 并且把currentPage  带进去 就行了
      

  4.   

    String action=request.getParameter("action");
      String pageId=request.getParameter("pageId");//第几页
    //这是我做的分页展示后台代码在servlet里 
     //展示项目支持
     if(action.equals("show"))
     {
     ShowBackInfoMg sbinfo=new ShowBackInfoMg();
    int  pageID=Integer.parseInt(pageId);
    int end=(pageID-1)*pageSize;  
    int begin=pageID*pageSize;
    String sqlCount="select count(*) from backInformation";
    String sql="select t2.* from (select t1.*, rownum rn from (select b.*,i.itemName,p.productName,bu.backUserName,u.username " +
    "from backInformation b,item i,product p,backUser bu,userinfo u where b.itemId=i.itemId and b.productId=p.productId and b.backUserId =bu.backUserId and u.userid=b.userid order by backInformationId desc )t1 where rownum <="+begin+")t2 where rn >"+end+""; 
    ArrayList backInfoList=sbinfo.getAllUserInfoBySQL(sql);
    int totalPage=sbinfo.getTotalPage(sqlCount, pageSize);
    request.setAttribute("action",action);
    request.setAttribute("totalPage", totalPage);
    request.setAttribute("backInfoList",backInfoList);
    request.setAttribute("pageId",pageId);
    RequestDispatcher rd=request.getRequestDispatcher("mgBackInfo.jsp");
    rd.forward(request, response);
    }
    //这是我修改后提交后台代码:
    if(action.equals("update")){
    String itemName=request.getParameter("itemName");
    ItemManager itemMg=new ItemManager();
     Item item=itemMg.getItemByName(itemName);
      int itemId=item.getItemId();
      String backUserName=request.getParameter("backUserName");
    BackUserManager bumg=new BackUserManager();
    BackUser backUser =bumg.getBackUserByName(backUserName);
    int backUserId=backUser.getBackUserId();
    String backType=request.getParameter("backType");
     String backWay= request.getParameter("backWay");
    String productName= request.getParameter("productName");
    String backinfo=request.getParameter("des");
    ProductMg pMg=new ProductMg();
    Product product= pMg.getProductByName(productName);
         int productId=product.getProductId();
    String subDate=request.getParameter("subDate");
    String subUser=request.getParameter("subUser");
    UserInfoManager umg=new UserInfoManager();
      UserInfo uinf=umg.findUserInfo(subUser);
      int userid=uinf.getUserid();
    String resolveStatus=request.getParameter("resolveStatus");
    String resolvePlan=request.getParameter("resolvePlan");
    String resolveDate=request.getParameter("resolveDate");
    String backInfoId=request.getParameter("backInfoId");
    int id=Integer.parseInt(backInfoId);
    BackInformation backInfo=new BackInformation();
    backInfo.setItemId(itemId);
     backInfo.setBackUserId(backUserId);
     backInfo.setBackType(backType);
     backInfo.setBackWay(backWay);
     backInfo.setProductId(productId);
     backInfo.setBackInfo(backinfo);
     backInfo.setSubDate(subDate);
     backInfo.setUserid(userid);
     backInfo.setResolveStatus(resolveStatus);
     backInfo.setResolvePlan(resolvePlan);
     backInfo.setBackInformationId(id); 
     if(resolveDate.equals("")||resolveDate==null){
     flag=bimg.updateAllBackInfo(backInfo);  
       if(flag==true)
              {
                 out.println("<script>alert('项目支持记录信息修改成功!');location.href='adminBackInfo.jsp';</script>"); 
              }
              else
              {
                 out.println("<script>alert('项目支持记录信息修改失败!');location.href='updataBackInfor.jsp';</script>");  
              }
    }
    你看哈怎么改,
      

  5.   

    String pageId=request.getParameter("pageId");//第几页 
    你在页面上写个request.setAttribute("pageIdBak",pageId);//pageId当前页
    String pageId=request.getParameter("pageIdBak");
      

  6.   

    String pageId=request.getAttribute("pageIdBak");写错了
      

  7.   

    String action=request.getParameter("action");
      String pageId=request.getAttribute("pageIdBak"); //第几页 看看有没输出,参数传进去
    System,out.println("$$$$$$$$$$$$$$$$$$$$$$"+pageId);//你想怎么操作都行了
    //这是我做的分页展示后台代码在servlet里
    //展示项目支持
    if(action.equals("show"))
    {
    ShowBackInfoMg sbinfo=new ShowBackInfoMg();
    int  pageID=Integer.parseInt(pageId);
    int end=(pageID-1)*pageSize;  
      

  8.   

    因为是写在servlet里,点击修改提交时我得到了pageId (第几页) ,怎么在去调用
     if(action.equals("show")) 
    { }
    让其显示查询结果页面,也就是说怎么在修改if(action.equals("update")){ }后,同一个servlet里在去调用 
    if(action.equals("show")) 
    { }让它跳到查询结果页面哦;
      

  9.   

    那修改提交if(action.equals("update")){ },得到了pageId值;怎么在去调用 servlet 里的if(action.equals("show")) 
    { } 啊;怎么在 if(action.equals("update")){ },
    里写调用if(action.equals("show")){}代码,让其跳到查询结果页面。谢谢各位高手,
      

  10.   

    不是有路径吗,现在你跳转的是XX。jsp是吧,到时候就直接跳转/myservlet/xx?method=aa&pageid=bb
    按你现在的需求只能这样写了。
      

  11.   

    也就是说: 把xx。jsp 换成直接跳转到同一个servlet里的if(action.equals("show")){}吗?那怎么写路径哦
      

  12.   

    解决了吧,直接跳转成你的这个servlet的路径后面跟上参数。也就是说你在这个servlet里面修改完了再跳回这个servlet再处理在跳出去
      

  13.   

    问题是解决了;但是;由于是多条件查询,是不是也要把获得的查询条件值,作为参数跟在servlet的路径后面哦?如果这样的话,那我的组合查询条件有十个,那不要传十个值和pageId值到servlet后面哦。