EL中的#{request}在Mojarra 2.3 m02中被评估为null

时间:2015-05-04 16:04:00

标签: jsf el mojarra jsf-2.3

我正在尝试使用Mojarra 2.3.0-m02。确认JSF配置文件faces-config.xml与JSF 2.3兼容,如下所示。

<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.3"
              xmlns="http://xmlns.jcp.org/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
              http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_3.xsd">

</faces-config>

我目前正在一个玩具空白游乐场项目,除了一个XHTML文件和一个或两个托管bean(CDI)之外别无其他。没有其他依赖项,如PrimeFaces,OmniFaces。

以下

<h:outputText value="contextPath : #{request.contextPath}"/>

被评估为null (空字符串?)。将faces-config.xml文件恢复为JSF 2.2特定的方式会按预期显示正确的上下文路径。

罪魁祸首是什么? (我使用的是GlassFish Server 4.1)。

其他

我在项目的主模板上使用了以下方法。

<ui:param name="contextPath" value="#{request.contextPath}"/>

然后在整个应用程序的多个位置使用contextPath等EL #{contextPath}

1 个答案:

答案 0 :(得分:2)

首先,JSF 2.3目前仍处于&#34; alpha&#34; (发展)阶段,里程碑版本不时发布。因此,预计有些事情还没有完成或者可能只是被忽视了。尽管如此,非常感谢对里程碑版本的测试和报告任何问题。

JSF 2.3中发生变化的一个问题是,需要CDI的第一个版本是,所有implicit EL objects都是resolved来自CDI producers,而不是an EL resolver。事实证明这仍在进行中。不仅<ul> <li ng-repeat="task in tasks" class="list-item"> <a>{{ task.name }}</a> <title title="{{ task.date.created | amDateFormat: 'dddd, MMMM Do YYYY, h:mm a' }}">{{ task.date.created | amCalendar }}</title> </li> </ul> 缺失#{request},而且还有#{header}#{initParam}#{param}甚至#{cc}#{component}在m02中丢失。< / p>

它可能会出现在下一个里程碑。