我有一个选择,我希望当用户不选择任何内容时会显示错误。所以我使用验证器,而我的xhtml代码是:
<p:selectOneMenu id="students"
value="#{studentsBean.selectedStudent}"
converter="studentsConverter" effect="fold">
<f:selectItem itemLabel="Select..." itemValue="" />
<f:selectItems value="#{studentsBean.studentsList}"
var="student" itemValue="#{student}"
itemLabel="#{student.name}" />
<p:ajax event="change" update="students" process="@this" />
<f:validator validatorId="studentNotNull" />
<f:ajax execute="@this" render="studentPanel"/>
</p:selectOneMenu>
<h:panelGroup id="studentPane">
<h:message for="students" style="color:red" />
</h:panelGroup>
问题是,如果我不选择任何内容,它会在我选择一个学生时显示“未选中学生”,而该标签不会消失。
验证器有效,我认为我不必编写代码。 有人可以帮忙吗?
答案 0 :(得分:0)
您可以尝试
<p:selectOneMenu id="students"
value="#{studentsBean.selectedStudent}"
converter="studentsConverter" effect="fold"
required="true" requiredMessage="Student is required">
<f:selectItem itemLabel="Select..." noSelectionOption="true"/>
<f:selectItems value="#{studentsBean.studentsList}"
var="student"
itemValue="#{student}"
itemLabel="#{student.name}" />
</p:selectOneMenu>
添加您的表单
<p:growl id="msgs" showDetail="true" life="3000"/>
当然还有更新msgs
表单中的提交