1

我的 xhtml 页面中有一些这样的代码

 <h:inputText    id="cardNumber"  
                 value="#{bean.cardNumber}" required="true" 
                 requiredMessage="Card Number Cannot be Blank" 
                 validatorMessage="Card Number must be 16 digits" 
                 maxlength="16" size="16" >   
        <f:validateLength  maximum="16" minimum="16" />   
        <f:validateRegex pattern="[0-9]*" for="cardNumber"/>
  </h:inputText>

对于上述输入文本,我正在执行所有三种验证,即必填字段验证、长度验证、正则表达式验证。

我知道我定义validatorMessage</h:inputText>验证<f:validateLength/><f:validateRegex/>,它会抛出相同的消息。我怎样才能为 <f:validateLength/>和抛出两个不同的消息<f:validateRegex/>

4

1 回答 1

5

你需要修改Messages.properties文件

添加以下条目并修改它们...

javax.faces.validator.LengthValidator.MAXIMUM = {1}: Validation Error: Length is greater than allowable maximum of ''{0}''
javax.faces.validator.LengthValidator.MINIMUM = {1}: Validation Error: Length is less than allowable minimum of ''{0}''

javax.faces.validator.RegexValidator.NOT_MATCHED = {1}: Validation Error: Value not according to pattern ''{0}''
javax.faces.validator.RegexValidator.PATTERN_NOT_SET = A pattern must be set for validate.
javax.faces.validator.RegexValidator.MATCH_EXCEPTION = The pattern is not a valid regular expression.

有关完整的教程,请查看在 JSF 2.0 中自定义验证错误消息

这里是对您可以在 JSF 2.0.x 中覆盖的所有可用消息的完整参考

于 2012-11-19T07:14:31.343 回答