2011-05-31 30 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方法。

相關問題