作者:SureChueng | 来源:互联网 | 2023-10-09 21:36
1、问题描述访问首页报错,报错信息如下:2015-10-23?14:13:45?org.apache.catalina.core.ApplicationDispatcher?inv
1、问题描述
访问首页报错,报错信息如下:
2015-10-23 14:13:45 org.apache.catalina.core.ApplicationDispatcher invoke
严重: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: /WEB-INF/views/modules/sys/menuTree.jsp(30,205) "${menu.parent.id eq (not empty param.parentId ? param.parentId:1)&&menu.isShow eq ‘1‘}" contains invalid expression(s): javax.el.ELException: Error Parsing: ${menu.parent.id eq (not empty param.parentId ? param.parentId:1)&&menu.isShow eq ‘1‘}
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
2、原因分析
1、tomcat6.X版本的bug导致错误。
注:但是,tomcat6.0.18这个版本已修复这个bug。
2、表达式语言的三元运算符书写不规范导致错误。
3、解决方法
1、简单一点的解决方法是,三元运算符的表达式和运算符之间要有空格。
示例:(not empty param.parentId ? param.parentId : 1)里的冒号 : ,前后必须要有空格。
2、麻烦一点的方法是换成tomcat6.0.18这个版本。
参考 1、http://vefan.iteye.com/blog/764939
2、http://blog.sina.com.cn/s/blog_4cb400450100fxeu.html