int PageSize=10; //一页显示的记录数
int RowCount; //记录总数
int PageCount; //总页数
int currPage; //待显示页码
rs.last(); // 光标在最后一行
RowCount = rs.getRow(); //获得当前行号
PageCount = (RowCount+PageSize-1) / PageSize;//记算总页数
rs.first();
String strPage; 
strPage=request.getParameter("P"); 
if (strPage==null){ 
currPage=1; 

else{ 
currPage=Integer.parseInt(strPage); 
if (currPage<1) currPage=1; 
} if (currPage>PageCount) currPage=PageCount; int thepage=(currPage-1)*PageSize; 
rs.absolute(thepage+1); 一段JSP分页显示的代码,URL是1.jsp?p=1显示为第一页。如果在地址栏输入1.jsp?p=999999999(九位整)没有问题。返回最大的页数。输入1.jsp?p=9999999999(十位整)或者十输入一个字符串。出现报错
行 currPage=Integer.parseInt(strPage);  错误。
   请问可以改为输入字符串返回1.或者是怎样让它不报错呢。或者是不允许URL传值。。
             小弟再此先谢了

解决方案 »

  1.   

    超过int最大允许值了,只要把int 改成long就行
    保险点的话,还可以用大数据类型java.math.BigDecimal来解决
      

  2.   

    耂大,我是新手呢。
       你这个java.math.BigDecimal怎样弄。输入字符串会报错吗?
     
       如果是long型的话。。currPage=Integer.parseInt(strPage);这里是否也要改一改呢?
      

  3.   

    int 类型的数据不能存放10位数的数字,你就只能 用更大一点的数据类型,如LONG 在变换时可以用:LONG.parseLong();
      

  4.   

    用int已经足够用了,如果在url输入1.jsp?p="字符串"或者是超出int得位数,
       出现currPage=Integer.parseInt(strPage);这句报错,怎么解决。
                或怎么能限制。
       谢谢
      

  5.   

    Double.parseDouble(arg0); 转换成double
    Long.parseLong(arg0);转换成长整数
    或者if(strPage.length()>9)
    {
         strPage=strPage.substring(开始位置,结束位置);
         currPage=Integer.parseInt(strPage);   }