<ui:repeat value="#{admin.detailTypesList}" var="detailType">
<h:outputText value="#{admin.getDetailTypeTranslation('ContactDetailType_'+detailType)}"/>
</ui:repeat>
表达el:
#{admin.getDetailTypeTranslation('ContactDetailType_'+detailType)}
传递给getDetailTypeTranslation
的参数为'ContactDetailType_'
(不含detailType
值)
我做错了什么?
答案 0 :(得分:5)
在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有关。
答案 1 :(得分:0)
jsf的EL实际上没有concat操作('+')。您应该编写一个函数来执行它或使用bean方法。