我得到这个异常:类型不匹配:不能从布尔转换为Boolean
org.apache.jasper.JasperException:无法编译类JSP
我使用Tomcat 5.5.23 。 29在jsp文件:/jsp/general/pos/DoMultiWordFrozen.jspf
类型不匹配
org.apache.jasper.JasperException:无法编译类JSP:在行发生
错误:无法从布尔型转换为布尔型
26:
27:item =(ItemType)session.getAttribute(“item”);
28:id = Integer.parseInt((String)session.getAttribute(“id”));
29:newItem = Boolean.valueOf((String)session.getAttribute(“newItem”));
30:changeGroup = null;
31:
32:如果(!!!的newitem & & item.getMultiWordFrozen()= NULL & & ID = 0){
堆栈跟踪:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(jasper5-编译器-5.5.23.jar.so) org.apache.jasper.compiler.ErrorDispatcher.javacError(jasper5-compiler-5.5.23.jar.so) org.apache.jasper.compiler.JDTCompiler.generateClass(jasper5-编译器-5.5.23.jar.so) org.apache.jasper.compiler.Compiler.compile(jasper5-compiler-5.5.23.jar.so) org.apache.jasper.compiler.Compiler.compile(jasper5-编译器5.5.23.jar.s o) org.apache.jasper.compiler.Compiler.compile(jasper5-compiler-5.5.23.jar.so) org.apache.jasper.JspCompilationContext.compile(jasper5-compiler-5.5.23.jar.so) org.apache.jasper.servlet.JspServletWrapper.service(jasper5-compiler-5.5.23.jar.so) org.apache.jasper.servlet.JspServlet.serviceJspFile(jasper5-compiler-5.5.23.jar.so) org.apache.jasper.servlet.JspServlet.service(jasper5-compiler-5.5.23.jar.so) javax.servlet.http.HttpServlet.service(tomcat5-servlet-2.4-api-5.5.23.jar。所以)
的newitem定义为:
boolean newItem = false;
SOLUTION:
这是因为我使用了旧JDK版本其不包括autobxing 升级到JDK 1.6后(或任何> = 1.5)引起的。现在工作正常。
尝试'newItem = session.getAttribute(“newItem”);' – hvgotcodes 2012-01-18 13:53:50
似乎您正在使用Java版本低于1.5编译JSP。在1.5中,应该自动完成拆箱操作(从'box',即布尔对象转换为简单的'boolean'类型)。如果可能,我建议使用更新的JDK – Wizart 2012-01-18 14:00:33
java -version Java版本“1.6.0_20” OpenJDK运行时环境(IcedTea6 1.9.10)(rhel-1.23.1.9.10.el5_7-x86_64) OpenJDK 64-位服务器虚拟机(构建19.0 - b09,混合模式) – yossi 2012-01-18 14:03:45