Как получить параметр init в JSF 1x, используя EL
У меня есть контекстный параметр следующим образом:
<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
Посоветуйте, пожалуйста, как получить параметр init в JSF 1x и какова ссылка на EL, используемый в JSF 1x.
1 ответ
Переменная EL верна, но вы не можете использовать отложенный EL #{}
в тексте шаблона в устаревшей JSP, которая является технологией представления по умолчанию в 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.