JSF 1.2/Seam 2.2-当输入为空时跳过验证程序

JSF 1.2/Seam 2.2-当输入为空时跳过验证程序,jsf,jboss,seam,jsf-1.2,Jsf,Jboss,Seam,Jsf 1.2,我试图在JSF(seam的xhtml文件)中调用validateLength 它适用于文本长度513和1等值(即,它显示警告,但不适用于0) 正在使用它的输入文本字段设置为required=false(这样它就可以对空字段使用4j支持,我必须根据输入显示预览) 我看到的问题是,助手类中有一个验证器方法,但当输入长度为0时,它会被忽略(即我不放任何内容,它对非空值有效) 我这里还有一个NullableStringConverter,但我注意到,只要该转换器设置空字符串的null值,验证程序就会

我试图在JSF(seam的xhtml文件)中调用validateLength


它适用于文本长度513和1等值(即,它显示警告,但不适用于0)

正在使用它的输入文本字段设置为required=false(这样它就可以对空字段使用4j支持,我必须根据输入显示预览)

我看到的问题是,助手类中有一个验证器方法,但当输入长度为0时,它会被忽略(即我不放任何内容,它对非空值有效)

我这里还有一个NullableStringConverter,但我注意到,只要该转换器设置空字符串的null值,验证程序就会被跳过。以下是inputText中的完整片段

<h:inputText id="linkNameInput" 
    value="#{someHelper.name}"
    validator="#{someHelper.validateMethod}"
    required="false">
      <f:validateLength minimum="2" maximum="512"/>
      <f:converter  converterId="NullableStringConverter" />
</h:inputText>

我只希望能够在验证器中验证空字符串

我只希望能够在验证器中验证空字符串

这在JSF1.x中是不可能的。这只有在JSF2.0(支持JSR303bean验证支持)之后才可能实现

我不确定为什么要在自定义验证器中验证空字符串。在这里,您通常使用
required=“true”
属性进行此操作。如果唯一的目标是更改所需的消息,那么只需使用
requiredMessage
属性即可

<h:inputText ... required="true" requiredMessage="Please enter name" />

我只希望能够在验证器中验证空字符串

这在JSF1.x中是不可能的。这只有在JSF2.0(支持JSR303bean验证支持)之后才可能实现

我不确定为什么要在自定义验证器中验证空字符串。在这里,您通常使用
required=“true”
属性进行此操作。如果唯一的目标是更改所需的消息,那么只需使用
requiredMessage
属性即可

<h:inputText ... required="true" requiredMessage="Please enter name" />

如前所述,不支持验证JSF 1.2组件中的空输入字符串。但是,您可以在表单提交时在支持bean中检查此空/空模型值,并添加映射到该特定输入字段的FacesMessage。这将允许与特定于服务器端组件的错误消息显示(
)集成


如前所述,不支持验证JSF1.2组件中的空输入字符串。但是,您可以在表单提交时在支持bean中检查此空/空模型值,并添加映射到该特定输入字段的FacesMessage。这将允许与特定于服务器端组件的错误消息显示(
)集成

? ?
FacesContext.getCurrentInstance().addMessage("componentId",
                                             facesMessageForComponent);