yos*_*ssi 1 java tomcat boolean exception
我得到这个例外:
org.apache.jasper.JasperException:无法编译 JSP 类
我使用的是tomcat 5.5.23。
org.apache.jasper.JasperException:无法编译 JSP 类:
jsp 文件中的第 29 行发生错误:/jsp/general/pos/DoMultiWordFrozen.jspf
类型不匹配:无法从布尔值转换为布尔值
26:27
: item = (ItemType)session.getAttribute("item");
28: id = Integer.parseInt((String)session.getAttribute("id"));
29: newItem = Boolean.valueOf((String)session.getAttribute("newItem"));
30: 更改组 = null;
31:
32: if (!newItem && item.getMultiWordFrozen() != null && id != 0) {
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(jasper5-compiler-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-compiler-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-compiler-5.5.23.jar.so) 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。服务(jasper5-compiler-5.5.23.jar.so) javax.servlet.http.HttpServlet.service(tomcat5-servlet-2.4-api-5.5.23.jar.so)
新项目定义为:
boolean newItem = false;
Run Code Online (Sandbox Code Playgroud)
解决方案:
这是因为我 在升级到 jdk 1.6 (或任何 >= 1.5 )后使用了旧的 JDK 版本,该版本不包括autobxing 。现在工作正常。
Boolean.valueOf
返回 a Boolean
,而不是boolean
- 所以听起来您可能想要:
newItem = Boolean.valueOf((String)session.getAttribute("newItem")).booleanValue();
Run Code Online (Sandbox Code Playgroud)
或者,也许更易读:
String newItemAttribute = (String) session.getAttribute("newItem");
newItem = Boolean.valueOf(newItemAttribute).booleanValue();
Run Code Online (Sandbox Code Playgroud)
我有点惊讶它不会自动为您拆箱,但我想这取决于 Jasper 使用的 Java 编译器版本。
归档时间: |
|
查看次数: |
17877 次 |
最近记录: |