我们有一个web应用程序,现在需要从jsp文件中调用方法。我们以前使用过Tomcat6,所以我们采取了以下步骤
现在,通过{$bean.object}访问带有getter和setter的对象很好,但是通过{$bean.method}调用方法会引发以下错误
org.apache.jasper.JasperException: /WEB-INF/jsp/home.jspx (line: 15, column: 52) "${bean.method()}" contains invalid expression(s): de.odysseus.el.tree.TreeBuilderException: Error parsing '${bean.method()}': syntax error at position 29, encountered '(', expected '}'我读到过其他人有类似的问题(例如这里)。
虽然该项目依赖于大量的外部库,但在/WEB-INF/lib文件夹中没有一个特定于元服务器的库。
我的问题是:
发布于 2014-03-13 07:53:20
基于错误中列出的类,web应用程序对朱尔具有依赖关系。
所使用的表达式包括一个方法调用。在EL 2.2 (JavaEE 6)中添加了方法调用。JUEL声称支持El2.2,所以看起来你有一个旧版本的JUEL和你的web应用程序捆绑在一起。
一个解决方案是更新该依赖项。
第二个解决办法是完全放弃JUEL。Tomcat 7包含一个EL 2.2实现,EL发现机制意味着无论使用什么EL,如果它找不到JUEL,就应该找到Tomcat的实现。
最后,我要指出的是,EL在El3.0 (JavaEE 7)中有了很大的进步,而且没有明显的迹象表明JUEL实现了El3.0,而Tomcat 8和其他容器中已有一段时间了。我建议向JUEL开发人员询问EL 3.0的计划,并根据他们的反应仔细考虑继续使用JUEL。
发布于 2014-03-12 22:50:37
我们使用了一个本身使用朱尔 2.1.x的旧版本,因此不支持El2.2;更新到新的shindig版本应该可以解决这个问题,因为它支持JSP2.2规范。
https://stackoverflow.com/questions/22005681
复制相似问题