JSF selectBooleanCheckbox required=true не проверяет, установлен ли флажок
Я пишу страницу JSF, которая требует, чтобы пользователи нажимали на флажок (аналогично принятию лицензионного соглашения) у меня есть следующий код:
<h:selectBooleanCheckbox value="#{checkBoxManagedBean.checkBoxValue}" required="true" id="jsfcheckBox" >
</h:selectBooleanCheckbox>
<h:outputLabel value="accept rule label" for="jsfcheckBox" />
<h:message for="jsfcheckBox"/>
<br/>
<h:commandButton id="loginButton" value="Submit"
action="#{checkBoxManagedBean.testAction}"/>
Я устанавливаю required=true, но для флажка нет проверки. Я не вижу никакого сообщения, отображаемого на странице для флажка.
Я пробовал f: validateRequired, даже это не работает.
<h:selectBooleanCheckbox value="#{checkBoxManagedBean.checkBoxValue}" required="true" id="jsfcheckBox" >
<f:validateRequired for="jsfcheckBox"></f:validateRequired>
</h:selectBooleanCheckbox>
<h:outputLabel value="CheckBox label" for="jsfcheckBox" />
<h:message for="jsfcheckBox"/>
<br/>
<h:commandButton id="loginButton" value="Submit"
action="#{checkBoxManagedBean.testAction}"/>
на странице нет проблем со временем, флажков, кнопок все видимое, мое ожидание получает сообщение проверки, когда флажок Не выбран до нажатия кнопки.
кстати, это спецификация JSF, которая required=true на самом деле не выполняет никакой проверки??
1 ответов
required=true
для полей ввода jsf означает, что значение поля не должно быть пустым или нулевым. Это похоже на ошибку в реализации jsf, но когда h:selectBooleanCheckbox
не проверяется, его значение равно false
и не пуст или null
. Таким образом, это не запускает проверку. BalusC написал хороший пост об этом здесь. Для этого он реализовал валидатор, который поможет вам преодолеть ситуацию. Спасибо BalusC.