JSP:得到"javax.el.ELException"。使用 GlassFish,但不使用 Apache Tomcat
JSP : Getting "javax.el.ELException". Working in GlassFish, but not in Apache Tomcat
先看下面代码:
<c:choose>
<c:when test="${type != 'h'}">
<input type="password" disabled="true" id="plainText" name="plainText" value="<%=key%>"/>
以上代码是我创建的 JSP 的一部分。变量类型初始化使用:
pageContext.setAttribute("type", type);
此 JSP 在部署和使用 GlassFish Server 时工作正常,但在 Apache Tomcat 服务器上部署时显示 javax.el.ELException: Cannot convert h of type class java.lang.String to class java.lang.Long
异常。
我使用 Netbeans 自动部署在 GlassFish 服务器上,同时使用 WAR 文件手动部署在 Tomcat 服务器上。
到底是什么问题?
也许您的 glassfish 使用的 EL 版本与 Tomcat...
更多详情:
JSP comparison operator behaviour
还要确保 pageContext.setAttribute("type", type) 中的 'type' 是字符串,而不是 INT 或 LONG 值。
找到解决方案,因为type
是一个字符。以下代码:
<c:when test="${type != 'h'}">
应该写成
<c:when test="${type != 'h'.charAt(0)}">
现在可以使用了。
先看下面代码:
<c:choose>
<c:when test="${type != 'h'}">
<input type="password" disabled="true" id="plainText" name="plainText" value="<%=key%>"/>
以上代码是我创建的 JSP 的一部分。变量类型初始化使用:
pageContext.setAttribute("type", type);
此 JSP 在部署和使用 GlassFish Server 时工作正常,但在 Apache Tomcat 服务器上部署时显示 javax.el.ELException: Cannot convert h of type class java.lang.String to class java.lang.Long
异常。
我使用 Netbeans 自动部署在 GlassFish 服务器上,同时使用 WAR 文件手动部署在 Tomcat 服务器上。
到底是什么问题?
也许您的 glassfish 使用的 EL 版本与 Tomcat...
更多详情: JSP comparison operator behaviour
还要确保 pageContext.setAttribute("type", type) 中的 'type' 是字符串,而不是 INT 或 LONG 值。
找到解决方案,因为type
是一个字符。以下代码:
<c:when test="${type != 'h'}">
应该写成
<c:when test="${type != 'h'.charAt(0)}">
现在可以使用了。