解决方案 »

  1.   

    1  大于总page  page = 最大页码
    2  前台或后台校验输入页码 如果不是正整数  页码 = 当前页码
      

  2.   

    哥么你这处理方式我也知道,总page你怎么拿?每次都去查?
    我指的是地址栏里后面跟上不规范的页码值,比如?page="aa",等你后台获取page值,已经报错了,因为我setPage参数设的是Intger而不是String
      

  3.   

    前台显示没问题的,而且有总页数,我问的是,地址栏输入的page值和总page值比较,总page值除了用全局变量保存,用来下一次和page值比较,还可以用什么方式来和page值比较
      

  4.   

    因为数据库里总条数,或者说满足某次检索条件的总条数是不断变化的,因此不可能保存全局变量。通常的做法是:接收参数是page和pageSize,即请求第几页,每页多少条,当然,这两个数是不是整数的判断肯定是一开始就判断了的。
    然后接下来要做的是:查询数据库,得到总条数totalCount,然后根据totalCount来调整page值,如果page>totalPage,page = totalPage,这里的totalPage是根据总条数和pageSize计算出来的,如果能整除,totalPage = totalCount / pageSize,如果不能整除,totalPage = totalCount / pageSize + 1;
    然后再用调整后的page和pageSize再次检索数据库,得到想要的结果集。
      

  5.   

     你考虑的很周全
    前台传过来的page  在后台可以进行解析 如果在字符串或者什么的 就直接抛出异常或者指定到第一页
    如果page值过大 就取最后一页  
      

  6.   

     如果你怕别人从地址栏人为更改  你可以使用ajax  至于你刚才说的“前台显示没问题的,而且有总页数,我问的是,地址栏输入的page值和总page值比较,总page值除了用全局变量保存,用来下一次和page值比较,还可以用什么方式来和page值比较”   你可以吧总页数传到前面 每次下一页的时候进行比较 
      

  7.   


    因为数据库里总条数,或者说满足某次检索条件的总条数是不断变化的,因此不可能保存全局变量。通常的做法是:接收参数是page和pageSize,即请求第几页,每页多少条,当然,这两个数是不是整数的判断肯定是一开始就判断了的。
    然后接下来要做的是:查询数据库,得到总条数totalCount,然后根据totalCount来调整page值,如果page>totalPage,page = totalPage,这里的totalPage是根据总条数和pageSize计算出来的,如果能整除,totalPage = totalCount / pageSize,如果不能整除,totalPage = totalCount / pageSize + 1;
    然后再用调整后的page和pageSize再次检索数据库,得到想要的结果集。
    嗯,这流程我以前玩过,看来还得每次查totalPages来比较新传进来的page值,打算用struts拦截器禁止地址栏编辑内容来解决胡乱输入页码的问题,谢谢啦