Validation 当提交的输入值为null时,不会调用JSF自定义验证器

Validation 当提交的输入值为null时,不会调用JSF自定义验证器,validation,jsf,jsf-2,Validation,Jsf,Jsf 2,我创建了一个自定义验证器,当输入为null时,它不会被调用 我的验证程序代码: @FacesValidator("requiredValidator") public class RequredValidation implements Validator { public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorExcept

我创建了一个自定义验证器,当输入为null时,它不会被调用

我的验证程序代码:

@FacesValidator("requiredValidator")
public class RequredValidation implements Validator {

    public void validate(FacesContext context, UIComponent component,
            Object value) throws ValidatorException {
        System.out.println("in valid GGGGGGGG");

    }
我的xhtml页面代码:

<p:message for="urlInput"  />

<p:inputText id="urlInputv" value="#{coverageBean.firstname}" label="URL" maxlength="2" >
    <f:validator validatorId="requiredValidator"></f:validator>
</p:inputText>
<p:message for="urlInputv"  />
<p:commandButton value="submit" action="#{loginBean.validateText}" />

现在,当我在文本框中输入任何值时,这是有效的,但当inputtext为null时,它不起作用

服务器正在使用

  • 雄猫
  • primefaces 3.5
  • jsf2.0
有人能告诉我问题出在哪里吗?

你有没有试着说:

<p:inputText id="urlInputv" required="true"

....

默认情况下,如果Bean验证(JSR303)在环境中不可用,JSF不会验证空提交值。此行为可以通过上下文参数
javax.faces.VALIDATE\u EMPTY\u FIELDS
控制

javax.faces.VALIDATE\u EMPTY\u FIELDS
的默认值是
auto
,这意味着如果类路径中有Bean验证(JSR303)可用,则会验证空字段

如果要在没有Bean验证的情况下验证空字段,请在
web.xml
中将上下文参数显式设置为
true
,如下所示:

<context-param>
    <param-name>javax.faces.VALIDATE_EMPTY_FIELDS</param-name>
    <param-value>true</param-value>
</context-param>
或者,使用
更为抽象:



请注意,您可以在同一个输入组件上安全地使用多个验证器。

与问题相关还是只是添加了噪音?只是添加了噪音。我只想在inputtext为nullWell时调用我的验证器,在这种情况下,编辑问题并删除它。
<context-param>
    <param-name>javax.faces.VALIDATE_EMPTY_FIELDS</param-name>
    <param-value>true</param-value>
</context-param>
<p:inputText ... required="true" requiredMessage="Please enter value" />
<p:inputText ... requiredMessage="Please enter value">
    <f:validateRequired />
</p:inputText>