【问题标题】:JSP : Getting "javax.el.ELException". Working in GlassFish, but not in Apache Tomcat [duplicate]JSP:获取“javax.el.E​​LException”。在 GlassFish 中工作,但不在 Apache Tomcat 中工作 [重复]
【发布时间】:2016-10-02 14:54:01
【问题描述】:

首先看下面的代码:

<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 Server 上时显示 javax.el.ELException: Cannot convert h of type class java.lang.String to class java.lang.Long 异常。

我使用 Netbeans 自动部署在 GlassFish 服务器上,而使用 WAR 文件手动部署在 Tomcat 服务器上。

到底是什么问题?

【问题讨论】:

  • 那么在你的源代码中type是什么类型的?
  • 字符类型。

标签: jsp char el


【解决方案1】:

也许您的 glassfish 使用的 EL 版本与 Tomcat 不同...

更多详情: JSP comparison operator behaviour

还要确保 pageContext.setAttribute("type", type) 中的 'type' 是字符串,而不是 INT 或 LONG 值。

【讨论】:

  • Tomcat 中的 EL 版本为 v3.0。我无法在 GlassFish 中获得 EL 版本。其次,type 是字符类型。
  • 找到了解决方案..比较字符是用.charAt(0)完成的。感谢您的帮助。
  • 不客气 :-)
【解决方案2】:

找到解决方案,因为type 是一个字符。以下代码: &lt;c:when test="${type != 'h'}"&gt; 应该写成 &lt;c:when test="${type != 'h'.charAt(0)}"&gt;

现在它正在工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-19
    • 2021-07-26
    • 2012-03-30
    • 2012-02-16
    • 2016-07-06
    • 2020-07-14
    • 2012-05-18
    • 1970-01-01
    相关资源
    最近更新 更多