首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从JSP调用Tomcat 7方法

从JSP调用Tomcat 7方法
EN

Stack Overflow用户
提问于 2014-02-25 05:48:17
回答 2查看 314关注 0票数 1

我们有一个web应用程序,现在需要从jsp文件中调用方法。我们以前使用过Tomcat6,所以我们采取了以下步骤

  • 迁移到Tomcat 7
  • 在web.xml中声明Servlet版本3
  • 在我们的servlet.xml中公开bean

现在,通过{$bean.object}访问带有getter和setter的对象很好,但是通过{$bean.method}调用方法会引发以下错误

代码语言:javascript
复制
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文件夹中没有一个特定于元服务器的库。

我的问题是:

  • 如何确定库是否特定于早期版本的Tomcat?
  • 这个错误还有其他可能的来源吗?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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。

票数 0
EN

Stack Overflow用户

发布于 2014-03-12 22:50:37

我们使用了一个本身使用朱尔 2.1.x的旧版本,因此不支持El2.2;更新到新的shindig版本应该可以解决这个问题,因为它支持JSP2.2规范。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22005681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档