未引用自定义验证器的空输入值引用两级嵌套属性

时间:2015-04-06 13:42:01

标签: jsf jsf-2.2 custom-validators

我有一个输入文本,当它在值中有两级嵌套实体时,它不会调用自定义验证器。

<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},那么它也可以。

1 个答案:

答案 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/>标签,并保存所有键入的内容