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)}">

现在可以使用了。