当前位置: 代码迷 >> J2SE >> request.getAttribute 传值取值有关问题
  详细解决方案

request.getAttribute 传值取值有关问题

热度:2335   发布时间:2013-02-25 00:00:00.0
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
  相关解决方案