这个el表达有什么不对?

Ben*_*Ben 3 java el

<ui:repeat value="#{admin.detailTypesList}" var="detailType">
<h:outputText value="#{admin.getDetailTypeTranslation('ContactDetailType_'+detailType)}"/>
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)

对于el表达:

#{admin.getDetailTypeTranslation('ContactDetailType_'+detailType)}
Run Code Online (Sandbox Code Playgroud)

传递给的参数getDetailTypeTranslation'ContactDetailType_'(没有detailType值)

我究竟做错了什么?

Bal*_*usC 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>
Run Code Online (Sandbox Code Playgroud)

请注意,此问题与JSF无关,但与EL有关.