我有一个输入文本,当它在值中有两级嵌套实体时,它不会调用自定义验证器。
<p:inputText id="valueField" value="#{bean.obj1.obj2.value}" maxlength="50">
<f:validator validatorId="requiredValidator" />
<p:ajax event="blur" />
</p:inputText>
<p:message id="idMsg" for="valueField"/>
当我给出一些值时,它工作得很好,但每当我尝试使用空值时,它都不会调用验证器。
如果将值更改为#{bean.value}
,那么它也可以。
答案 0 :(得分:1)
默认情况下,JSF不打扰空白字段;您需要通过配置指定该行为。假设验证器中没有错误,请将以下配置参数添加到 web.xml
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
否则,您只需在输入组件上设置required="true"
或在输入组件上设置<f:validateRequired/>
标签,并保存所有键入的内容