我在出生年份有以下验证器:
<f:validateLongRange minimum="1920" maximum="1992" />
验证消息是某种:
“出生年份必须在1.920至1.992之间”
现在一些用户抱怨道:“我是否必须在1和9之间加点?”
答案当然是“否”,但是我可以以某种方式更改错误消息,使其不显示分隔符吗?
(我已使用占位符{0}和{1}更改了自定义消息包中的默认验证消息以插入最小值和最大值,但我认为这不重要,不是吗?)< / p>
答案 0 :(得分:1)
此数字格式由LongRangeValidator
设置,后者又使用NumberConverter
来准备占位符的最小值/最大值。因此,遗憾的是,您不能使用MessageFormat
API的 SubformatPattern 功能。
您最好的选择是使用validatorMessage
属性
<h:inputText validatorMessage="The year of birth must be between 1920 and 1992">
或提供扩展LongRangeValidator
的自定义验证程序,并以不同方式处理邮件处理作业(即不将转换后的最小/最大值作为String
传递给它,但只是将其转换为未转换) 。然后,您应该能够使用以下消息格式:
The {2} must be between {0,number,#} and {1,number,#}