JSF中使用primefaces的条件验证
我在JSF中有两个实体是下拉列表。如果我选择月份,那么我应该强制选择年份。如果我没有选择年份而只选择月份,则单击“提交”按钮时会出现验证错误。这种形式的条件验证在primefaces中是否可行。我尝试过javascript方法,但不知怎么地失败了。如何使用primefaces实现它。? 下面是我的两个实体JSF中使用primefaces的条件验证,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,我在JSF中有两个实体是下拉列表。如果我选择月份,那么我应该强制选择年份。如果我没有选择年份而只选择月份,则单击“提交”按钮时会出现验证错误。这种形式的条件验证在primefaces中是否可行。我尝试过javascript方法,但不知怎么地失败了。如何使用primefaces实现它。? 下面是我的两个实体 <p:outputLabel for="year" value="Year: " /> <p:selectOneMenu id="year" sty
<p:outputLabel for="year" value="Year: " />
<p:selectOneMenu id="year" style="width:150px " value="#{bean.year}">
<f:selectItem itemLabel="All" itemValue="All"/>
<f:selectItem itemLabel="2014" itemValue="2014"/>
<f:selectItem itemLabel="2013" itemValue="2013"/>
<f:selectItem itemLabel="2012" itemValue="2012"/>
<f:selectItem itemLabel="2011" itemValue="2011"/>
<f:selectItem itemLabel="2010" itemValue="2010"/>
<f:selectItem itemLabel="2009" itemValue="2009"/>
</p:selectOneMenu>
<p:outputLabel for="month" value="Month: " />
<p:selectOneMenu id="month" style="width:150px" value="#{bean.month}">
<f:selectItem itemLabel="All" itemValue="All"/>
<f:selectItem itemLabel="January" itemValue="01"/>
<f:selectItem itemLabel="February" itemValue="02"/>
<f:selectItem itemLabel="March" itemValue="03"/>
<f:selectItem itemLabel="April" itemValue="04"/>
<f:selectItem itemLabel="May" itemValue="05"/>
<f:selectItem itemLabel="June" itemValue="06"/>
<f:selectItem itemLabel="July" itemValue="07"/>
<f:selectItem itemLabel="August" itemValue="08"/>
<f:selectItem itemLabel="September" itemValue="09"/>
<f:selectItem itemLabel="October" itemValue="10"/>
<f:selectItem itemLabel="November" itemValue="11"/>
<f:selectItem itemLabel="December" itemValue="12"/>
</p:selectOneMenu>
将属性required=“true”添加到您选择的年度菜单中
<p:selectOneMenu id="year" style="width:150px" required="true" value="#{bean.year}">
<!-- some code here -->
</p:selectOneMenu>
<p:message for="year" display="icon" />
请注意,标记消息用于显示错误发生的位置。对于每月的selectOneMenu,请执行相同的操作。我认为此简单解决方案适用于您的情况,如果您想使用自定义验证器,您必须遵循以下步骤:
javax.faces.validator.validator
接口validate()
方法@FacesValidator
注释分配唯一的验证器ID您可以在JSF2.0中查看更多信息自定义验证器我需要一个自定义验证,如果我选择了月份而不是年份,那么应该执行验证。