2011-05-31 27 views
3
<ui:repeat value="#{admin.detailTypesList}" var="detailType"> 
<h:outputText value="#{admin.getDetailTypeTranslation('ContactDetailType_'+detailType)}"/> 
</ui:repeat> 

的EL表达式:这个el表达式有什么问题?

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

传递给getDetailTypeTranslation该参数'ContactDetailType_'(不detailType值)

我在做什么错?

+0

可能重复[JSP EL String concatenation](http://stackoverflow.com/questions/3189642/jsp-el-string-concatenation) – McDowell 2011-05-31 14:13:31

+0

@McDowell不完全。这个问题还需要在连接表达式中使用el变量的知识。 – Ben 2011-05-31 15:34:46

回答

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一般。

0

jsf的EL没有真正的concat操作('+')。你应该写一个函数来做或者使用一个bean方法。

相关问题