小弟新学jsp有很多不懂,请各位大侠指教
  我有一个查询界面(一个jsp文件)用来输入一些查询条件,这个页面被提交后会会在另一个页面(SearchResult.jsp)调用一个拼出sql语句的javabean,还会调用一个连接数据库并执行sql语句的javabean,然后再这个页面划出表格, 由于数据比较多所以我采用分页现实的方法,分页语句如下<a href="SearchResult.jsp?page=<%=intPage-1%>">上一页</a>,就是穿了了个page,于是问题就出来了,一点“上一页”这个超链接SearchResult.jsp就会刷新,于是第一次通过查询页面得到的结果集就没了。那个原先拼出的sql语句也得不到了。
   请问如何保存第一次拼出得sql语句或是第一次得到得结果集?先谢谢了。

解决方案 »

  1.   

    使用超连接的话 可以把所有的参数都放在href中
      

  2.   

    应该是参数传递和参数的保存问题
    我做的时候是传参的同时保存到session中
    你可以试下
      

  3.   

    第一次查询时应该把条件保存到session,点上页、下页时重新查寻并返回要的那页
      

  4.   

    String sql_search = "select * from table ";
    request.getSession().setAttribute("sql_search", sql_search);
    List list = db.select(sql_search, 10);
    if(!list.isEmpty()){
    request.setAttribute("flag", "yes");
    }
    else{
    request.setAttribute("flag", "no");
    }
    return new ActionForward("/search.jsp");
    }
    -------------------------------------------------------------------
    search.jsp:<logic:notEmpty name="flag">
    <logic:equal name="flag" value="yes">
    <script>
        window.opener.location='selectAll.do?action=selectAll&name=one';
        window.opener.alert("查询成功!");
        window.close();
    </script>
    </logic:equal>
    <logic:equal name="flag" value="no">
    <script>
    window.alert("对不起,没有查到相关记录!");
    window.history.go(-1);
    </script>
    </logic:equal>
     </logic:notEmpty>
    ---------------------------------------------------------------------
    selectAll.do:
    public ActionForward selectAll()
    {
    String name = request.getParameter("name");
    if(name.equals("all"))
    {
    //查询所有
    }
    if(name.equals("one")) //条件查询
    {
    String sql = request.getSession().getAttribute("sql_search").toString();
    List list = new DB(ds).select(sql,10);
    //对list进行分页 }
    return new ActionForward("/list.jsp");
    }
      

  5.   

    <a href="?page=2&key=hellfire">第二页</code>