最近在做一个分页,后台的action的代码基本完善了,现在需要把获取的页面参数setAttribute,在jsp里面getAttribute,
但是貌似又遇到麻烦了,我的jdk是1.4版本,公司的老项目,我在开发一个新功能,getAttribute和setAttribute无法传int类型,这个我倒是可以解决,转化成包装类或者string就可以了,set进去完全没问题,JSP页面也可以取到并打印出来,但是取到的值无法进行任何操作,就是说,我代码是转换成string,然后再转成int类型,现在只要一操作取到的这个值,立马报错,很费解,之前也遇到相同类似问题,但是纠结了一段时间自己就好了,奇怪,求解,不要建议我换jdk版本,因为这个是老项目,以前的东西不是我开发的,所以我求稳定为主!以下为代码,很简单就是不知道哪里错了!action的代码//计算总页数
PageCount=(RowCount+PageSize-1)/PageSize;
    String PP=String.valueOf(PageCount);
//System.out.println(PageCount);

//调整待显示页码
if (Page>PageCount) {
Page=PageCount;
}
//System.out.println("记录条数:"+RowCount);
if (PageCount>0) {
//将记录指针定位到待显示页的第一条记录上
rs.absolute((Page-1)*PageSize+1);
}

request.getSession().setAttribute("PageCount", PP );
jsp页面的代码://取得待显示页码和总页数
     
      String pagecount =(String)request.getSession().getAttribute("PageCount");
      int ss;//如果这个加上注释可以运行,不会报错
      ss =Integer.valueOf(pagecount).intValue();//如果这个加上注释可以运行,不会报错
      System.out.println(pagecount);

解决方案 »

  1.   

    什么叫
    如果这个加上注释可以运行,不会报错不会报错还问什么呀?还有用Integer.parseInt试试
      

  2.   


    是这个意思
    //int ss;如果这个加上注释可以运行,不会报错
    // ss =Integer.valueOf(pagecount).intValue();如果这个加上注释可以运行,不会报错貌似一操作这个数据pagecount就抛异常,Integer.parseInt我最开始用的,效果一样,这个问题好蛋疼啊!
      

  3.   

    从你贴出来的代码看,没什么问题,能叫报错的信息帖出来吗?
    不过你的代码不够完善,我帮你调整下:
    request.getSession().setAttribute("PageCount", PP );
    改为
    request.getSession().setAttribute("PageCount", new Integer(PageCount) );---------------------------String pagecount =(String)request.getSession().getAttribute("PageCount");
    int ss;//如果这个加上注释可以运行,不会报错
    ss =Integer.valueOf(pagecount).intValue();//如果这个加上注释可以运行,不会报错
    System.out.println(pagecount);
    改为
    Integer pagecount =(Integer)request.getSession().getAttribute("PageCount");
    int ss;//如果这个加上注释可以运行,不会报错
    if (pagecount != null) {
        ss = pagecount.intValue();//如果这个加上注释可以运行,不会报错
    }
    System.out.println(ss);
      

  4.   

    Compile failed; see the compiler error output for details.
    at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:842)
    at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:682)
    at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:317)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:370)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:473)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:190)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    编译错误,之前有遇到过类似的问题,是我上一篇帖子,但是自己就好了,上一篇帖子的al数组开始也是类似情况,数据可以取到,但是无法操作,就连取得length都跑异常,太坑爹了http://topic.csdn.net/u/20120802/15/d4653b9b-764c-4b0d-9500-3c5ecea8d3bd.html?seed=2017348577&r=79449306#r_79449306
      

  5.   

    试了,还是一样,把这段注释掉就可以编译通过,不注释还是报错,为什么数据无法操作呢
                          int ss;
          if (pagecount != null) {
           ss = pagecount.intValue();
         }
      

  6.   

          Integer pagecount =(Integer)request.getSession().getAttribute("PageCount");
          int ss;
          if (pagecount == null) {
           //ss = pagecount.intValue();
           System.out.println("321");
         }
          System.out.println("123");结果是:123
      

  7.   

    pagecount为空的时候不能转成int,只能用Integer
      

  8.   

    很无奈,解决了
          //取得待显示页码和总页数
          Integer pagecount =(Integer)request.getSession().getAttribute("PageCount");
          int ss=0;
          if (pagecount != null) {
           ss = pagecount.intValue();
           System.out.println("321");
         }
          System.out.println(ss);
          
    太考验我的智商了,这个问题一度把我逼疯了,居然是这样~~
      

  9.   


    pagecount不可能为空,问题都是稀奇古怪的解决了,郁闷,三分结贴了,该下班了。。