关于struts中的action代码

来源:百度知道 编辑:UC知道 时间:2024/05/25 06:58:38
最近在练习struts时,碰到了一个问题。在session设置的时候,
Random rnd=new Random();
int rndNumber=rnd.nextInt(rank);
HttpSession session=request.getSession();
session.setAttribute("rndNumber",rndNumber+"");我必须在rndNumber后面加上“”才能使语法合法。但是老师的案例中没有用+“”,而是
session.setAttribute("rndNumber",rndNumber)就ok了。我们用的都是eclipse,java1.4版本。语法上我也明白rndNumber是数字,而session要求此处必须为对象,但是拿老师的代码在我的机子上打开的时候,就不需要加,而且没有问题。(我们引入的包完全一致)
另外一个问题是session的接受问题,和上一个问题类似
我自己的实现代码
HttpSession session=request.getSession();
Object o=session.getAttribute("rndNumber");
String s=(String)o;
int rankNumber=Integer.parseInt(s);
老师的实现代码如下
HttpSession session = request.getSession();
int rndNumber = (Integer)session.getAttribute("rndNumber");
我可以打开她的代码,没错。但是我自己在eclipse中按照她的敲就有错,而且还不知道怎么调试,呵呵,哪位大侠点拨一二啊。。

因为JDK版本不同,在JDK1.5以后的版本可以自动将int等基本数据类型转换为其封装类,也就是引用类型。
在setAttribute方法中,传递的参数必须为Object对象引用类型,而你这里直接使用int类型本身无法设置,在JDK1.5后会自动转换为Integer,因此没出现错误.
你可以把你安装的eclipse编译使用的JDK改为使用JDK5.0(也就是1.5)的方式就行了