最初は空h:selectManyListbox
で、ページを送信する前に少なくとも 1 つのエントリが含まれている必要があります。そのため、これを確認するための検証を行うことを考えました。で試しました
@Size( min = 1, message = "{validation.emptyDataOptions}" )
private Set< DataOption > dataOptions;
Beanrequired="true" requiredMessage="#{msg.validationEmptyFund}"
内およびページ内。
1 つ目は効果がなく、2 つ目はページを送信する前に少なくとも 1 つのエントリを選択した場合にのみ有効です。
私は何かが恋しいですか?h:selectManyListbox
aが空でないかどうかのみを確認する可能性はありますか?
コードは次のとおりです。
<td>
<h:selectManyListbox
id = "dataOptions"
value = "#{detailModel.selectedDataOptions}" size="5"
readonly = "#{detailModel.mode == detailModel.viewMode or (detailModel.mode == detailModel.editMode and !loggedUser.hasPermission('CMN backoffice permission id'))}"
required = "true" requiredMessage="#{msg.validationEmptyFund}"
>
<f:selectItems
value = "#{detailModel.afterObject.dataOptions}"
var = "sdo" itemLabel="#{sdo.dataOptionName}" itemValue="#{sdo}"
/>
</h:selectManyListbox>
<h:messages for="dataOptions" style="color:red; font-size:12px;" />
</td>