`

tomcat 6 el表达式的问题

    博客分类:
  • Java
阅读更多

下面的这个页面在 tomcat 5.5.15里面是正确的,但是在6.0.14里面就出问题

<?xml version="1.0" encoding="GBK"?>
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:jsp="http://java.sun.com/JSP/Page">

<jsp:output omit-xml-declaration="true"
doctype-root-element="html"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />

<head>
<title>error!!!</title>
</head>
<body>
<p>${true? (false?true:false):false}</p>
</body>
</html>
 



org.apache.jasper.JasperException: An exception occurred processing JSP page
/test.jspx at line 15

12: <title>error!!!</title>
13: </head>
14: <body>
15: <p>${true? (false?true:false):false}</p>
16: </body>
17: </html>


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

javax.el.ELException: Error Parsing: ${true? (false?true:false):false}
org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:125)
org.apache.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:146)
org.apache.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:190)
org.apache.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:68)
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:922)
org.apache.jsp.test_jspx._jspService(test_jspx.java:62)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

org.apache.el.parser.ParseException: Encountered "true: false" at line 1, column 16.
Was expecting one of:
"(" ...
<IDENTIFIER> ...
<NAMESPACE> <IDENTIFIER> ...

org.apache.el.parser.ELParser.generateParseException(ELParser.java:1874)
org.apache.el.parser.ELParser.jj_consume_token(ELParser.java:1754)
org.apache.el.parser.ELParser.NonLiteral(ELParser.java:1136)
org.apache.el.parser.ELParser.ValuePrefix(ELParser.java:1030)
org.apache.el.parser.ELParser.Value(ELParser.java:978)
org.apache.el.parser.ELParser.Unary(ELParser.java:960)
org.apache.el.parser.ELParser.Multiplication(ELParser.java:723)
org.apache.el.parser.ELParser.Math(ELParser.java:643)
org.apache.el.parser.ELParser.Compare(ELParser.java:455)
org.apache.el.parser.ELParser.Equality(ELParser.java:349)
org.apache.el.parser.ELParser.And(ELParser.java:293)
org.apache.el.parser.ELParser.Or(ELParser.java:237)
org.apache.el.parser.ELParser.Choice(ELParser.java:203)
org.apache.el.parser.ELParser.Expression(ELParser.java:183)
org.apache.el.parser.ELParser.NonLiteral(ELParser.java:1122)
org.apache.el.parser.ELParser.ValuePrefix(ELParser.java:1030)
org.apache.el.parser.ELParser.Value(ELParser.java:978)
org.apache.el.parser.ELParser.Unary(ELParser.java:960)
org.apache.el.parser.ELParser.Multiplication(ELParser.java:723)
org.apache.el.parser.ELParser.Math(ELParser.java:643)
org.apache.el.parser.ELParser.Compare(ELParser.java:455)
org.apache.el.parser.ELParser.Equality(ELParser.java:349)
org.apache.el.parser.ELParser.And(ELParser.java:293)
org.apache.el.parser.ELParser.Or(ELParser.java:237)
org.apache.el.parser.ELParser.Choice(ELParser.java:203)
org.apache.el.parser.ELParser.Expression(ELParser.java:183)
org.apache.el.parser.ELParser.DynamicExpression(ELParser.java:155)
org.apache.el.parser.ELParser.CompositeExpression(ELParser.java:52)
org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:93)
org.apache.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:146)
org.apache.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:190)
org.apache.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:68)
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:922)
org.apache.jsp.test_jspx._jspService(test_jspx.java:62)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 

分享到:
评论
2 楼 hf200012 2008-07-01  
tomcat6 中对5.0中这样的判断 ${not empty command ? command.id:""}的处理变成了这样${command.id},不再需要判断了,不是他们的bug,只不过实在兼容性上有问题
1 楼 codeutil 2008-07-01  
这个是Tomcat6 的bug:
https://issues.apache.org/bugzilla/show_bug.cgi?id=42565

相关推荐

    tomcat6.0.0报EL表达式错误

    NULL 博文链接:https://babykate.iteye.com/blog/1771952

    tomcat5.5.28支持EL 表达式的解决方法.

    tomcat5.5.28支持EL 表达式的解决方法.

    Tomcat 6解析EL表达式的Bug示例

    今天发现Tomcat 6.0.36版本存在一个EL表达式解析方面的bug,详细描述请参阅我的博文:http://blog.csdn.net/chaijunkun/article/details/9097229。bug演示地址/bug/show.do,避免此bug的方法演示地址/bug/avoid.do

    EL表达式所用的jar包.rar

    项目用到jsp开发的时候,如果报错找不到EL表达式等等问题,只要在项目中引入jar包即可

    EL表达式 jsp

    EL表达式详解及使用,Tomcat对EL表达式的支持和配置等等

    el表达式api.jar包

    tomcat使用EL表达式所需要的jar包,如果没有此jar包系统系统就会报错,现上传此jar包,减少大家找jar包的时间

    el表达式 jstl

    JSTL是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet...JSTL包含两个部分:标签库和EL(Expression Language表达式语言)语言。标签库目前支持四种标签:

    JSTL详解--EL表达式

    JSTL详解--EL表达式 在 JSP 页面中,使用标签库代替传统的 Java 片段语言来实现页面的显示逻辑已经不是新技术了,然而,由自定义标签很容易造成重复定义和非标准的实现。鉴于此,出现了 JSTL ( JSP Standard Tag ...

    解析Tomcat 6、7在EL表达式解析时存在的一个Bug

    主要是对Tomcat 6、7在EL表达式解析时存在的一个Bug进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助

    Jstl.jar&standard;.jar

    Jstl.jar包是一款java中项目中如果要使用JSTL和EL表达式,就必须导入jstl.jar和standard.jar文件,可以让程序猿们在日常生活中更节约时间。

    apache-tomcat-8.0.0-RC5

    支持servlet3.1, jsp 2.3, el表达式3.0 and Java WebSocket 1.0. 2.默认http与ajp请求实现non-blocking技术,即NIO技术。 3.多个应用发布的时候可以先打成jar包,然后打成一个总的war发布。(这句翻译不太准,意思...

    tomcat架包

    tomcat架包 包括所有的tomcat要用到的架包,除了servlet相关的外,其中还有el表达式的

    EL表达式和JSTL标签(备java基础,jsp,servlet,tomcat)

    EL 提供.和[]两种运算符来存取数据。当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。JSTL主要提供了5大类标签库:核心标签库、 国际化(I18N)标签库、SQL标签库、XML标签库、...

    tomcat-8.0.21

    1.支持servlet3.1, jsp 2.3, el表达式3.0 and Java WebSocket 1.0. 2.默认http与ajp请求实现non-blocking技术,即NIO技术。 3.多个应用发布的时候可以先打成jar包,然后打成一个总的war发布。(这句翻译不太准,意思...

    Tomcat 8 软件及源码

    4. EL 3.0支持:Tomcat 8 支持最新的EL(表达式语言)3.0规范,提供了更多的表达式功能和语言特性。 5. JSP 2.3支持:Tomcat 8 支持最新的JSP 2.3规范,包括对新特性和改进的支持,如EL 3.0、标签文件的静态引入等。...

    el-api.jar

    el-api-2.2.jar el表达式所需jar包,tomcat8的工程部署可直接拷贝至服务器的tomcat7下的lib目录下

    apache-tomcat-8.0.0-RC3.tar.gz

    apache-tomcat-8.0.0-RC3.tar.gz 是官网推出的最新Tomcat,Apache Tomcat 8支持Java EE 7规范,包括Java Servlet 3.1、JSP 2.3、Java统一表达式语言EL 3.0等。除此以外,Tomcat 8还支持像Java WebSocket 1.0这样的新...

    apache-tomcat-8.5.24.rar

    Apache Tomcat 8支持Java EE 7规范,包括Java Servlet 3.1、JSP 2.3、Java统一表达式语言EL 3.0等。

    JAVAWeb全课程笔记( html版)

    EL表达式语言 JSTL标签库: JSP标准标签库 MVC程序架构思想&案例 [总结]Path路径问题 [总结]JavaWeb乱码问题 [转自IBM]中文编码问题 JDBC入门 Jdbc事务控制管理 常用数据库连接池 编写JDBC框架 客户信息管理系统 ...

Global site tag (gtag.js) - Google Analytics