我有一个上下文参数如下:
<context-param>
<param-name>myInitParam</param-name>
<param-value>myValue</param-value>
</context-param>
我想在JSF 1x中获得一个初始化参数(确切版本是1.1.02),如下所示:
<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参考是什么。
答案 0 :(得分: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>
(请注意,我假设您已经使用<f:verbatim>
发布了普通HTML)
是的,这是丑陋的一条线,但这是使用JSP的回报,也是Facelets被引入的主要原因之一。