2012-03-19 60 views
5

我要循環的一些「客人」,並插入一個ID動態分配ID來標記dynanimally使用EL變量

<ui:repeat value="#{guestList}" var="guest"> 
    <p:inputText id="firstname_#{guest.uniqueID}" value="" label="Firstname" /> 
    <p:message for="firstname_#{guest.uniqueID}" /> 
</ui:repeat> 

的問題是,該<p:message />無法解決firstname_#{guest.uniqueID}

javax.faces.FacesException - 在視圖中找不到組件「firstname_1」。 在org.primefaces.component.message.MessageRenderer.encodeEnd(MessageRenderer.java:41)

它的工作沒有任何問題,如果我寫的循環內恆定,而且我相信,該變量可以解決了,因爲我可以在該循環中輸出它。

我該如何指導jsf或primefaces來解決這個變量?

回答

9

您不能在id屬性中使用EL表達式。

但是你不需要關心用戶界面的獨特性:重複。 JSF爲你做。只要給你的輸入域的「固定」的id和引用它的p:message

<ui:repeat value="#{guestList}" var="guest"> 
    <p:inputText id="firstname" value="" label="Firstname" /> 
    <p:message for="firstname" /> 
</ui:repeat> 
+0

謝謝你的答案,但客人數是我的問題的一個單純的簡化,因爲我需要這些ID爲解決權領域在我的支持豆裏面。除非有另一種方式,否則以另一種方式來解決我的bean問題,這還不是我的問題的解決方案。 (我試圖讓我的問題更清楚) – devsnd 2012-03-19 12:57:46

+0

目前還不清楚爲什麼你需要在後臺bean中使用id。您將值屬性留空。它應該用於將輸入綁定到後臺bean字段。也許這就是你需要的? – 2012-03-19 13:03:26

+0

你是對的!現在我明白了:既然我遍歷所有的「賓客」,我可以在循環中動態地分配值綁定。 (抱歉,混淆,但實際上問題發生在嵌套合成中膝深) – devsnd 2012-03-19 13:09:48