所以,有两个条件:
A.选中复选框(= =播放div视图)
>用户选择一个选项 – >好的
>用户不选择任何内容 – >我希望显示所需的消息,这就是我所做的:
<p:message style="margin: 10px" id="messages7" for="npsScoreSupport" /> <h:selectOneMenu id="npsScoreSupport" value="#{npsBean.supportScore}" required="true" requiredMessage="Please select an option"> <f:selectItems value="#{npsBean.ratingPickList}" /> </h:selectOneMenu>
B.未选中复选框(== div视图被隐藏)
>用户不选择任何内容 – >好吧,但页面仍然要求用户选择一个选项,因为我有required =“true”.
由于我需要requireMessage以确保在选中复选框时选择了一个选项,我想知道是否可以根据复选框的状态使requireMessage成为条件?
(复选框选中时需要,取消选中时不需要)
有什么建议吗?
============更新======================
所以现在我更新了我的复选框并将其与JAVA类中的函数连接(默认为布尔变量check = true)
<h:selectBooleanCheckbox class="someClass" value="#{someBean.check}" />
这是我的选择器
<h:selectOneMenu id="OptSelector" value="#{someBean.Opt}" required="#{someBean.check}" requiredMessage="Please select and option"> <f:selectItems value="#{npsBean.OptPickList}" />
即使未选中该复选框,提交也会失败,似乎布尔检查永远不会更改.谁知道为什么?
解决方法
<h:selectBooleanCheckbox binding="#{checkbox}" ... /> <h:selectOneMenu ... required="#{checkbox.value}" />
(注意:代码是完整的,你不需要将它绑定到bean属性!)
请注意,这并不是您明确要求的严格“有条件地显示消息”.它只是根据需要有条件地验证输入.消息是否被显示仅仅是结果.
也可以看看:
> How does the ‘binding’ attribute work in JSF? When and how should it be used?
更新:根据您尝试检查< h:selectBooleanCheckbox值>相反,这将不起作用,因为此值仅在更新模型值阶段期间更新,该阶段是在要检查所需属性的验证阶段之后.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。