2012-10-25 51 views
2

我正在嘗試在Prime Faces中創建一個動態調查應用程序。我有一個問題對象列表,每個對象都包含一個AnswerChoices列表。這些被賦予給f:selectItems值屬性。這可以。問題對象還包含一個selectedValues列表,它被提供給相關的selectOne/many組件。將UISelectOne和UISelectMany的值綁定到相同的屬性

因爲我看起來是通用的,所以會出現有多個選定值的問題,以及一些只有一個選定值的問題。我希望能夠將selectOne和selectMany組件指向表示selectedValues的相關Question對象內的字符串列表。

這適用於selectMany組件,但不適用於需要指向單數對象而不是列表的selectOne組件。是否有一種簡單的方法可以解決這個問題 - 我想只有一個對象代表selectedValues,如果可能的話

回答

0

您可以使用括號表示將值綁定到特定的列表/數組項目指數。以下示例將該值綁定到列表/數組的第一項。

<h:selectOneMenu value="#{bean.selectedAnswers[0]}" /> 

但是有一個警告:你需要在bean的(後期)構建過程中自己準備單個項目的列表/數組。在<h:selectOneMenu>的情況下,JSF/EL不會那樣做。

E.g.

@PostConstruct 
public void init() { 
    selectedAnswers = new ArrayList<Answer>(); 
    selectedAnswers.add(null); 
} 

它不傷害重用此preinitializated屬性UISelectMany組件的方式。

+0

非常好。這工作。謝謝BalusC! – zargarf

+0

不客氣。 – BalusC

相關問題