日期:2014-05-20  浏览次数:20794 次

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

action的代码
Java code

//计算总页数
            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页面的代码:
Java code

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





------解决方案--------------------
什么叫
如果这个加上注释可以运行,不会报错

不会报错还问什么呀?还有用Integer.parseInt试试。。。
------解决方案--------------------
操作的时候报什么错呢,看代码没什么毛病
------解决方案--------------------
从你贴出来的代码看,没什么问题,能叫报错的信息帖出来吗?
不过你的代码不够完善,我帮你调整下:
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);
------解决方案--------------------
pagecount为空的时候不能转成int,只能用Integer