JSF selectBoolanCheckbox Required=True不会验证是否选中了复选框 [英] JSF selectBooleanCheckbox required=true doesn't validate if checkbox is selected

查看:21
本文介绍了JSF selectBoolanCheckbox 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:valiateRequired,即使这样也不起作用。

<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实际上不执行任何验证吗?

推荐答案

required=truefor jsf输入字段表示该字段的值不能为空或空。这似乎是jsf实现中的错误,但当h:selectBooleanCheckbox未被选中时,它的值是false,而不是空或null。因此,这不会触发验证。BalusC has written a nice post about this here。他为此实现了一个验证器,帮助您克服这种情况。谢谢BalusC

这篇关于JSF selectBoolanCheckbox Required=True不会验证是否选中了复选框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆