1.类型不匹配:不能从 Integer 转换为 int
<%
//隐式对象,系统对象 jsp简化程序员的工作,已经建好的对象
//servletContext对象 net application
//当前在线人数
int num = (Integer)application.getAttribute("usernum");
num++;
application.setAttribute("usernum",new Integer(num));
%>
2.类型 ServletContext 中的方法 setAttribute(String, Object)对于参数(String, int)不
适用
package com.control;
import javax.servlet.ServletContextEvent;
public class ApplicationListener implements javax.servlet.ServletContextListener{
public void contextDestroyed(ServletContextEvent arg0) {
// TODO 自动生成方法存根
System.out.println("contextDestroyed");
}
// application start
public void contextInitialized(ServletContextEvent arg0) {
// TODO 自动生成方法存根
System.out.println("contextInitialized");
arg0.getServletContext().setAttribute("usernum",0 );
}
}
7 个解决方案
#1
int num = (Integer)application.getAttribute("usernum");
num++;
application.setAttribute("usernum",new Integer(num));
直接定义num 为Integer类型就可以了
类型 ServletContext 中的方法 setAttribute(String, Object)对于参数(String, int)不
适用
int 是简单类型,使用Integer 型就可以了
num++;
application.setAttribute("usernum",new Integer(num));
直接定义num 为Integer类型就可以了
类型 ServletContext 中的方法 setAttribute(String, Object)对于参数(String, int)不
适用
int 是简单类型,使用Integer 型就可以了
#2
Integer.parseInt(),,,试试 如果你返回的参数整型数字,没理由会转不了,估计就是你用的转型方法错了,,
#3
JRE是那个版本的?
#4
你先看你的jdk是哪个版本的,好像从jdk1.5开始支持,自动拆箱和封箱了,所以你不需要自己手动去转了,java会帮你自动转的。
#5
看看你eclipse的编译环境window->preferences->java->Compiler是否为1.5以上
#6
Integer.parseInt( application.getAttribute("usernum").toString() ) 试一下
#7
有的时候是Eclipse误报,或者是web环境是1.5以前的
#1
int num = (Integer)application.getAttribute("usernum");
num++;
application.setAttribute("usernum",new Integer(num));
直接定义num 为Integer类型就可以了
类型 ServletContext 中的方法 setAttribute(String, Object)对于参数(String, int)不
适用
int 是简单类型,使用Integer 型就可以了
num++;
application.setAttribute("usernum",new Integer(num));
直接定义num 为Integer类型就可以了
类型 ServletContext 中的方法 setAttribute(String, Object)对于参数(String, int)不
适用
int 是简单类型,使用Integer 型就可以了
#2
Integer.parseInt(),,,试试 如果你返回的参数整型数字,没理由会转不了,估计就是你用的转型方法错了,,
#3
JRE是那个版本的?
#4
你先看你的jdk是哪个版本的,好像从jdk1.5开始支持,自动拆箱和封箱了,所以你不需要自己手动去转了,java会帮你自动转的。
#5
看看你eclipse的编译环境window->preferences->java->Compiler是否为1.5以上
#6
Integer.parseInt( application.getAttribute("usernum").toString() ) 试一下
#7
有的时候是Eclipse误报,或者是web环境是1.5以前的