jsf验证消息中的组分隔符

时间:2011-10-25 14:20:02

标签: java validation jsf-2 resourcebundle

我在出生年份有以下验证器:

<f:validateLongRange minimum="1920" maximum="1992" />

验证消息是某种:

  

“出生年份必须在1.920至1.992之间”

现在一些用户抱怨道:“我是否必须在1和9之间加点?”

答案当然是“否”,但是我可以以某种方式更改错误消息,使其不显示分隔符吗?

(我已使用占位符{0}和{1}更改了自定义消息包中的默认验证消息以插入最小值和最大值,但我认为这不重要,不是吗?)< / p>

1 个答案:

答案 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,#}