jsp页面,用户输入条件查询得结果后,当点击
首页,上一页,下一页,末页
这些翻页的时候,如何把当前的查询条件也捎上?

解决方案 »

  1.   

    当前的查询条件带上?这个有点困难,如果你使用的struts2,直接使用<s:Url> 这个url中就把当前参数全部带上了的。
    否则,这需要你手动地拼接当前界面的所有参数。如通过request.getRequestURL取得地址,通过request.getQueryString取得参数信息,再拼接这个字符串。最后,使用get 方法 提交表单,这样参数就能传递到url上了。
      

  2.   

    底层的sql语句是一样的,只是传的参数不同。下面的是最底层的查询类了。只贴这个,不知能不能帮到你。
    /**
     * 分页查询数据库
     * 
     * @param pageNum
     *            当前页数
     * @param pageSize
     *            每页的记录数大小
     * @return list 返回当前页数的记录列表
     */
    public static List<Student> getStuListLike(int pageNum, int pageSize,
    String studentNum) { if (studentNum == null) {
    studentNum = "";
    }
    List<Student> list = new ArrayList<Student>();
    String sql;
    if (pageNum == 1) {
    sql = "select top " + pageSize
    + " * from Student where studentNum like '%" + studentNum.replaceAll("'", "''")
    + "%'";
    } else {
    sql = "select top " + pageSize
    + " * from Student where studentNum  like '%" + studentNum.replaceAll("'", "''")
    + "%' and studentNum not in( " + "select top "
    + (pageNum - 1) * pageSize + " studentNum from Student )";
    }
    ResultSet rs = ConnectionDAO.executeQuery(sql);
    try {
    while (rs.next()) {
    Student s = new Student();
    s.setIdentityCard(rs.getString("identityCard"));
    s.setSex(rs.getString("sex"));
    s.setStudentName(rs.getString("studentName"));
    s.setStudentNum(rs.getString("studentNum"));
    list.add(s);
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    ConnectionDAO.freeConn();
    return list; }
      

  3.   

    使用隐藏域来传递查询条件:
    <form id="..." name="..." action="..." method="post">
        <input type="hidden" name="..." value="..."/>
        <input type="hidden" name="page" value="..."/>
        ...
    </form>
    同时,向“上一页”、“下一页”所代表的超链接注册onclick事件,点击后向隐藏域设置
    合适的参数,之后提交表单。
    不知这样能不能满足你的要求。
      

  4.   

    一样的  在SQL语句后面and一个或多个查询条件 根据你的需求
      

  5.   

    用隐藏域或是用hibernate内的那个分页也不错,封装在一个叫什么来着的里面
      

  6.   

    例如:
    select top 3 * from orderDetail  where orderId = '20110613214031' and detaileId not in ( select  top 3 detaileId from orderDetail where orderId = '20110613214031'  ) 
      

  7.   

    用隐藏字段把你的当前页传到后台,分页查询sql语句一般不用改变,所以直接写代码或配置文件里好了,后台取到前台传来的查询字段和页码,拼装sql就行了,为啥要传sql语句?
      

  8.   

    如果你的是管理系统,可以把条件放入到session中,另外的话你可以把提交有查询条件的表单。
      

  9.   

    你可以在连接中加上参数,然后在后台读取,在拼装成SQL语句就行了