0
我有一個小小的問題,下面的代碼。我們必須使用booleancheckboxes,我們有12個,正如你可以在代碼中看到的一樣。我想創建一個驗證器,因此用戶必須至少選擇其中的一個,但這並不容易,因爲所有複選框都是單獨的,並且由於循環,我也不能給它們ID-s。驗證它的正確方法是什麼,或者甚至可能如何。驗證多個booleancheckboxes
<rich:dataGrid id="checkboxes" value="#{MonitorBean.signalingOptions}" var="Signal" columns="3" elements="12" first="0">
<f:facet name="header">
<h:outputText value="Signaling options"></h:outputText>
</f:facet>
<rich:panel bodyClass="pbody">
<h:panelGrid columns="2">
<h:selectBooleanCheckbox value="#{Signal.toMonitor}" required="true" disabled="enabled">
<!--<f:validator validatorId="util.CheckboxValidator" />-->
<h:message for="checkboxes" styleClass="errors"/>
</h:selectBooleanCheckbox>
<h:outputText value="#{Signal.signalName}"></h:outputText>
</h:panelGrid>
</rich:panel>
</rich:dataGrid>
感謝您的幫助!
我不認爲這是有效的,因爲我不能給我的複選框的名稱和屬性一個接一個,因爲它們是由一個循環產生或不是? –
@enricko您不需要指定id,但當然您需要將組件映射到Java代碼中的成員(如果使用用戶輸入,您肯定已經完成了這些操作)。例如,請參閱[this](http://www.andygibson.net/blog/tutorial/binding-dynamic-multi-select-checkboxes-with-jsf/)。 –
是的,但是jsf驗證部分發生在組件被寫入映射之前,所以我不能使用處理程序代碼,或者我只是沒有通過示例得到它如何與驗證程序類一起使用。 –