【问题标题】:JSTL EL invalid expression(s): javax.el.ELException: in Tomcat 7JSTL EL 无效表达式:javax.el.E​​LException:在 Tomcat 7 中
【发布时间】:2012-02-16 12:44:31
【问题描述】:

我试图让这个旧的 JSP 项目在 Tomcat 7、JRE7 中运行,但在项目的大多数页面中都出现了这个错误。任何人都可以阐明发生了什么吗?

代码如下:

<c:set var="structClass">
    <c:if test="${empty param.class}">template</c:if>
    <c:if test="${not empty param.class}">${param.class}</c:if>
</c:set>

错误看起来像:

org.apache.jasper.JasperException:javax.servlet.ServletException:javax.servlet.jsp.JspException:org.apache.jasper.JasperException:/WEB-INF/templates/template.jsp(行:77,列: 4) "${empty param.class}" 包含无效表达式:javax.el.E​​LException: 无法解析表达式 [${empty param.class}] org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:585) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)

【问题讨论】:

    标签: jsp tomcat jstl el


    【解决方案1】:

    是因为'class'关键字在表达式中尝试使用

    <c:if test="${empty param['class']}">template</c:if>
    <c:if test="${not empty param['class']}">${param['class']}</c:if>
    

    参考http://geekomatic.ch/2011/03/22/1300804080000.html

    【讨论】:

    • 现在错误变为 => org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.NoSuchFieldError: deferredExpression
    • geekomatic.ch/2011/03/22/1300804080000.html 我添加了 -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true 并解决了问题....感谢链接!!!
    • ${something.new} 也因为 new 关键字而出现同样的错误。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    • 2016-10-22
    • 2014-01-31
    相关资源
    最近更新 更多