无法找到EL RI表达式工厂

时间:2011-01-31 10:16:38

标签: jsp jsf el

我在我的申请中遇到以下异常。

  

com.sun.faces.config.ConfigurationException:   它似乎是JSP版本的   容器超过2.1并且无法使用   找到EL RI表达式   厂,   com.sun.el.E​​xpressionFactoryImpl。如果   不要使用JSP或EL RI,请确保   上下文初始化参数,   com.sun.faces.expressionFactory,是   正确设置。

如何在web.xml

中设置EL详细信息

4 个答案:

答案 0 :(得分:8)

例外是告诉JSP 2.1是必需的。您需要确保将web.xml声明为Servlet 2.5或更新版本,并确保您的servlet容器支持它(Tomcat 6,Glassfish 2,JBoss AS 5等,或更新版本)。 JSP 2.1与Servlet 2.5密切相关。声明web.xml的正确Servlet 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_2_5.xsd"
    version="2.5">

    <!-- Config here. -->

</web-app>

如果你使用的是旧版本的servletcontainer,你真的不能升级到至少一个兼容Servlet 2.5的版本,那么你需要先告诉我们它是哪一个,以便我们可以发布更合适的答案/的解决方法。

答案 1 :(得分:4)

这是因为最新的el jar不在classpath中。 它也适合我

(参考)请参阅链接 JSF 2.0 + Tomcat : It appears the JSP version of the container is older than 2.1…

答案 2 :(得分:1)

将以下内容添加到Web.xml中,它对我有用。

<context-param>
    <param-name>com.sun.faces.expressionFactory</param-name>
    <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>

答案 3 :(得分:1)

您可以尝试在Web.xml中删除以下内容,它对我有用。

<context-param>
    <param-name>com.sun.faces.expressionFactory</param-name>
    <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>