Tomcat 7 javax.el.ELException

今天部署SSH项目的时候发现一个非常奇怪的问题,项目在tomcat6.0上无任何问题,但把项目部署到服务器的tomcat7上的时候出现了javax.el.ELException 。
起初还以为是jar包没有配置正确、jstl与standard的版本问题或tomcat6.0 web.xml没有配置正确,可是各种解决方法尝试后依然不成功。后来发现错误只存在于嵌套的cforeach循环中。在搜索资料对比tomcat6.0与tomcat7.0的区别和查询一些文章之后,发现:
tomcat 7对EL表达式的语法要求比较严格,例如"${owner.new}"因包含关键字new就会导致解析出错。
而我正好在嵌套的foreach循环中使用了new关键字。。。。
怎么解决呢?有三种,如下:
第一种:严格遵守java规范,修改对象的属性名称,要求不包含java关键字;
第二种:修改EL表达式,例如"${owner.new}"可以修改为"${owner[‘new‘]}";
第三种:修改tomcat属性,忽略对EL表达式的关键字检查。修改$CATALINA_BASE/conf/catalina.properties文件,添加org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true选项。

原文出自:
http://www.myexception.cn/h/810255.html

参考文档:
http://tomcat.apache.org/tomcat-7.0-doc/config/systemprops.html#Expression_Language

时间: 2024-10-10 17:05:57

Tomcat 7 javax.el.ELException的相关文章

Tomcat 7 'javax.el.ELException' 的解决方式(failed to parse the expression [${xxx}])

Tomcat 7 'javax.el.ELException' 的解决方式 tomcat 7对EL表达式的语法要求比较严格,例如"${owner.new}"因包含关键字new就会导致解析出错. 问题是出来了,怎么解决呢?有三种,如下: 第一种:严格遵守java规范,修改对象的属性名称,要求不包含java关键字; 第二种:修改EL表达式,例如"${owner.new}"可以修改为"${owner['new']}"; 第三种:修改tomcat属性,忽

Tomcat报failed to parse the expression [${xxx}]异常(javax.el.ELException)的解决方法

Tomcat 7 'javax.el.ELException' 的解决方式tomcat 7对EL表达式的语法要求比较严格,例如"${owner.new}"因包含关键字new就会导致解析出错.问题是出来了,怎么解决呢?有三种,如下:第一种:严格遵守java规范,修改对象的属性名称,要求不包含java关键字;第二种:修改EL表达式,例如"${owner.new}"可以修改为"${owner['new']}";第三种:修改tomcat属性,忽略对EL表

Caused by: javax.el.ELException:

tomcat6.0升级到tomcat7.0,访问项目时报错:Caused by: javax.el.ELException: 页面源码: 是因为,新的tomcat(我的是tomcat7)对EL表达式的语法进行了更加严格的检查. 此时tomcat的EL表达式解析器会把String类型转换为Long型而不是把pageHelper.pageNo类型转换为String进行比较, 当遍历到下一元素时,looper="...",这时String的类型已经确定,比较的时候tomcat还要试图将Str

处理 javax.el.ELException: Failed to parse the expression 报错

在JSP的表达式语言中,使用了  <h3>是否新Session:${pageContext.session.new}</h3>  输出Session是否是新的,此时遇到了  javax.el.ELException: Failed to parse the expression  报错.这里主要是因为在Tomcat7中表达式的权限变小了,如果遇到JAVA的关键字,就会出现此种错误,在这个例子中就是因为 new 是JAVA的关键字,所以才会出错. 解决办法:设置启动参数   -Dor

javax.el.ELException: The identifier [new] is not

下午给项目添加了一个小功能,报这个问题,看下图: 严重: Servlet.service() for servlet [springmvc] in context with path [/PUP] threw exception [An exception occurred processing JSP page /pages/front/conference/showConferenceDetails.jsp at line 32 29:                    <div cla

javax.el.ELException Cannot convert 0e27d734-c316-4e13-8770-161092a2b3c4 of type class java.lang.Str

项目运行时,出现了这个问题,很郁闷,半天找不到错误出处,后来联想了一下之前解决的一个bug和这个可能相类似,就试了一下,果然是这个问题 我的jsp页面有这样一段代码: <pre name="code" class="java"><c:if test="${topicModel.userid==0 }"> <a class="js-673810 w-icn2 w-icn2-3 a-followicon ico

oozie错误:javax.servlet.jsp.el.ELException: variable [***] cannot be resolved

完整错误: javax.servlet.jsp.el.ELException: variable [compute] cannot be resolved at org.apache.oozie.util.ELEvaluator$Context.resolveVariable(ELEvaluator.java:106) at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124) at org.apache.commons.e

Tomcat启动报错java.lang.ClassNotFoundException: javax.el.ExpressionFactory

严重: Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0': Invocation of init method failed; nested exception

javax.el.PropertyNotFoundException: Property &#39;id&#39; not found on type java.lang.Integer

javax.el.PropertyNotFoundException: Property 'id' not found on type java.lang.Integer    at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:237)    at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:214)    at jav