что не так в этом выражении эль? - PullRequest
3 голосов
/ 31 мая 2011
<ui:repeat value="#{admin.detailTypesList}" var="detailType">
<h:outputText value="#{admin.getDetailTypeTranslation('ContactDetailType_'+detailType)}"/>
</ui:repeat>

для выражения el:

#{admin.getDetailTypeTranslation('ContactDetailType_'+detailType)}

Параметр, переданный getDetailTypeTranslation, равен 'ContactDetailType_' (без значения detailType)

Что я делаю неправильно

Ответы [ 2 ]

5 голосов
/ 31 мая 2011

В EL + является исключительно оператором суммы. Вы можете использовать <ui:param>, чтобы создать новую переменную, которая существует из строки, соединенной с выражением EL, а затем использовать новую переменную.

<ui:repeat value="#{admin.detailTypesList}" var="detailType">
    <ui:param name="contactDetailType" value="ContactDetailType_#{detailType}" />
    <h:outputText value="#{admin.getDetailTypeTranslation(contactDetailType)}"/>
</ui:repeat>

Обратите внимание, что эта проблема связана не с JSF, а с EL в целом.

0 голосов
/ 31 мая 2011

У EL jsf на самом деле нет операции concat ('+'). Вы должны написать функцию для этого или использовать метод bean.

...