Tomcat 7 'javax.el.ELException' 的解决方式

针对Tomcat7中EL表达式因包含关键字导致的问题,本文介绍了三种解决方案:调整属性名避免使用关键字、修改EL表达式语法及配置tomcat忽略关键字检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tomcat 7对EL表达式的语法要求比较严格,例如"${owner.new}"因包含关键字new就会导致解析出错。
问题是出来了,怎么解决呢?有三种,如下:
第一种:严格遵守java规范,修改对象的属性名称,要求不包含java关键字;
第二种:修改EL表达式,例如"${owner.new}"可以修改为"${owner['new']}";
第三种:修改tomcat属性,忽略对EL表达式的关键字检查。修改$CATALINA_BASE/conf/catalina.properties文件,添加org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true选项。

参考文档:
http://tomcat.apache.org/tomcat-7.0-doc/config/systemprops.html#Expression_Language
HTTP状态 500 - 内部服务器错误 类型 异常报告 消息 org.apache.jasper.JasperException: javax.el.ELException: Failed to parse the expression [${encodeURIComponent(`${platform.toLowerCase()}_login_${timestamp}`)}] 描述 服务器遇到一个意外的情况,阻止它完成请求。 例外情况 org.apache.jasper.JasperException: org.apache.jasper.JasperException: javax.el.ELException: Failed to parse the expression [${encodeURIComponent(`${platform.toLowerCase()}_login_${timestamp}`)}] org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:589) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:425) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327) javax.servlet.http.HttpServlet.service(HttpServlet.java:764) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 根本原因。 org.apache.jasper.JasperException: javax.el.ELException: Failed to parse the expression [${encodeURIComponent(`${platform.toLowerCase()}_login_${timestamp}`)}] org.apache.jasper.compiler.Validator$ValidateVisitor.prepareExpression(Validator.java:1644) org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:771) org.apache.jasper.compiler.Node$ELExpression.accept(Node.java:959) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2385) org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2437) org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2443) org.apache.jasper.compiler.Node$Root.accept(Node.java:471) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2385) org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1869) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:224) org.apache.jasper.compiler.Compiler.compile(Compiler.java:391) org.apache.jasper.compiler.Compiler.compile(Compiler.java:367) org.apache.jasper.compiler.Compiler.compile(Compiler.java:351) org.apache.jasper.JspCompilationContext.compile(JspCompilationConte
03-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值