JSF Tomcat 7 PropertyNotFoundException

标签 jsf tomcat el

我在从 tomcat 6 升级到 tomcat 7 后遇到 PropertyNotFoundException。这是我收到的消息:

value="#{someHandler.result.someList[1].doSomething(someDTO.id).value}": Property 'doSomething' not found on type com.someproject.SomeClass

谁能解释一下为什么?我正在使用 jsf 2(myfaces 实现),是的,doSomething 不是属性,但值是。它适用于 tomcat 6。按下按钮后出现此异常(这会使页面在进行一些数据库访问后刷新)。表单在第一次调用时呈现良好!

谢谢!

最佳答案

doSomething(someDTO.id)

EL 2.2 之前的版本默认不支持这样的方法调用。那么为什么它在使用 EL 2.1 的 Tomcat 6 上工作超出了我的范围。可能它的 /lib 文件夹中有一个自定义 EL 实现。

但是,由于 Tomcat 7.0 支持 EL 2.2,它在 Tomcat 7.0 上肯定可以正常工作。唯一的先决条件是声明您的 web.xml 符合 Servlet 3.0 规范,以便触发 EL 2.2 功能。

确保您的 web.xml 符合 Servlet 3.0 而不是 2.5 或更早版本:

<?xml version="1.0" encoding="UTF-8"?>
<web-app
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

    <!-- config here -->
</web-app>

关于JSF Tomcat 7 PropertyNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6020593/

相关文章:

jsf - EL 语法中 #{...} 和 ${...} 有什么区别

java - JSF - 创建通用确认页面(动态导航)

javascript - a4j :commandButton ternary operator is not working oncomplete

tomcat - 参数没有注册配置(container [id = [tomcat7x]

Tomcat 在启动时抛出 OutOfMemoryError

java - 部署 WAR 文件会在 Tomcat 上给我一个 404 状态码?

security - 检索 Shiro 主体

JSF h :selectonemenu convertor Validation error value is not valid

java - 为基于 JSF 的 Web 应用程序选择测试框架

jsf - javax.el.E​​LException : Function "rich:element" not found