2011-02-09 57 views
2

我用鑽嘴魚科,PrimeFaces在JSF 2.0項目工作和Tomcat 6.x的JSF動態形式selectManyCheckbox

我創建了一個動態表單只selectManyCheckbox。

我有以下代碼:

<ui:repeat value="#{wagent.prArticles}" var="theme"> 
    <h:selectManyCheckbox layout="pageDirection" styleClass="pressReviewTable" value="#{bean.selectedArticles}"> 
     <f:selectItems value="#{theme.articles}" var="prArt" itemLabel="#{prArt.prLabel}" itemValue="#{prArt.id}" itemLabelEscaped="false"/> 
    </h:selectManyCheckbox> 
</ui:repeat> 

selectedArticles是實體的名單。

我在網上看到selectManyCheckbox的值可以指向String[]List<String>。 使用此代碼,所選文章不包含所有選中的值,只包含最新的選中組。

我應該如何獲取所有選中的值?

回答

2

基本上,value必須綁定到當前迭代的項目,這是你的情況theme

<ui:repeat value="#{wagent.prArticles}" var="theme"> 
    <h:selectManyCheckbox value="#{theme.selectedArticles}"> 
     ... 
    </h:selectManyCheckbox> 
</ui:repeat> 

在bean的操作方法,訪問屬性後面#{wagent.prArticles}來獲取所有檢查的值。

當您將該值綁定到外部bean時,您現在遇到的情況的確會發生。基本上,JSF將覆蓋每個迭代項目上的選中值,直到最後一項。這就是爲什麼你只能看到最後迭代項目的選中值。