0

我有一个上下文参数如下:

  <context-param>
    <param-name>myInitParam</param-name>
    <param-value>myValue</param-value>
  </context-param>

我想在 JSF 1x(确切版本是 1.1.02)中获取一个 init 参数,如下所示:

<object>
<param name="HTTPPort" value="#{initParam.myInitParam}" />

但我在 JSP 中遇到编译器错误:

the attributes for a standard action or an uninterpreted tag cannot be deferred expressions

请告知如何在 JSF 1x 中获取 init 参数,以及在 JSF 1x 中使用的 EL 的参考是什么。

4

1 回答 1

1

EL 变量是正确的,但是您不能#{}在旧版 JSP 的模板文本中使用延迟 EL,这是 JSF 1.x 中的默认视图技术。这正是错误消息试图告诉您的内容。

您需要使用<h:outputText>.

<f:verbatim><param name="HTTPPort" value="</f:verbatim><h:outputText value="#{initParam.myInitParam}" /><f:verbatim>" /></f:verbatim>

(请注意,我假设您已经使用 发出纯 HTML <f:verbatim>

是的,这是丑陋的一面,但这是使用 JSP 的回报,也是引入 Facelets 的主要原因之一。

也可以看看:

于 2013-05-14T11:07:09.163 回答