在JavaEE环境中使用EL 3需要哪些设置?

时间:2016-06-08 07:54:12

标签: maven java-ee el jsf-2.2

我正在使用Apache TomEE 1.7.4

我的pom.xml文件中添加的依赖项是 -

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency> 

        <dependency>
            <groupId>javax.el</groupId>
            <artifactId>el-api</artifactId>
            <version>2.2</version>
        </dependency>

        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.2.0</version>
        </dependency>

        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.2.0</version>
        </dependency>

在< - p>中使用new string concatenation operator +=

 <h:graphicImage 
   value="#{resource[facesContext.viewRoot.locale+='/default:img/rafa.png']}"/>

我用这个 -

替换了EL 2.2版本
         <dependency>
            <groupId>javax.el</groupId>
            <artifactId>javax.el-api</artifactId>
            <version>3.0.0</version>
         </dependency>

但我得到了一个 -

Caused by: javax.el.ELException: Failed to parse the expression [#{resource[facesContext.viewRoot.locale+='/default:img/rafa.png']}]
    at org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:145)
    at org.apache.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:171)
    at org.apache.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:216)
    at org.apache.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:66)
    at org.apache.webbeans.el22.WrappedExpressionFactory.createValueExpression(WrappedExpressionFactory.java:59)
    at com.sun.faces.facelets.tag.TagAttributeImpl.getValueExpression(TagAttributeImpl.java:408)
    ... 43 more

建议,如果有的话?

我不确定是否必须升级到版本8,

  

Apache Tomcat 8支持Java Servlet 3.1,JavaServer Pages 2.3,   Java Unified Expression Language 3.0和Java API for WebSocket 1.1   规格。

<小时/> 好的,它与GlassFish(4.0) Java EE Application Server完美配合。 但是我不知道在pom.xml文件中要输入哪些条目 -

Here,提到需要在pom.xml

中添加以下依赖项
<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-web-api</artifactId>
    <version><!-- 7.0 (JSF 2.2) or 6.0 (JSF 2.0/2.1) --></version>
    <scope>provided</scope>
</dependency>

添加后,有 -

enter image description here

截图来说明我的困惑 -

在服务器日志中,我发现服务器正在使用此版本的Mojarra

  

2016-06-08T17:26:36.778 + 0530 | INFO:正在初始化Mojarra 2.2.0(   20130502-2118 https://svn.java.net/svn/mojarra~svn/tags/2.2.0@11930

使用Glassfish 4.0的lib文件夹 - enter image description here

您会看到有一个jar文件javaee

如果我需要使用Mojarra 2.2.6版本,比如说,我到底需要做什么?

1 个答案:

答案 0 :(得分:0)

MyFaces支持将EL ExpressionFactory配置为使用(https://myfaces.apache.org/core20/myfaces-impl/webconfig.html),因此它可以是强制执行一个impl的一种方法,但您也可以升级到Tomcat 8包装Tomcat 8。