2013-09-22 22 views
1

我有一個具有布爾屬性的對象列表。我使用複選框列表爲列表中的每個對象選擇/取消選擇該屬性。我的問題是,在重新渲染表單後,已經選中的複選框顯示爲空。這是爲什麼?Ajax渲染重置選定的複選框

<h:form> 
    <ui:repeat value="#{bean.employeeList}" var="employee"> 
     <h:selectBooleanCheckbox value="#{employee.selected}"> 
     <h:outputText value="#{employee.name}" /> 
     </h:selectBooleanCheckbox> 
    </ui:repeat> 

    <h:selectBooleanCheckbox value="#{bean.isDone}"> 
     <f:ajax event="click" render="@form" /> 
    </h:selectBooleanCheckbox> 
</h:form> 
+0

支持bean的範圍是什麼?在什麼時候'employeeList'被填充? – kolossus

+0

這個bean是ViewScoped,這個列表被填充在一個PostConstruct方法中@kolossus –

+0

確認'@ PostConstruct'沒有被重複調用? – kolossus

回答

1

<f:ajax>處理由默認的電流分量,如在execute="@this"。如果您打算處理整個表單,則需要通過@form明確指定整個表單。

<f:ajax execute="@form" render="@form" /> 

請注意,我刪除了event="click"。這已經是默認了。