JSF消息:取消本地化?

时间:2010-11-16 16:07:27

标签: java validation jsf localization

我有一个简单的表单,每个<h:message>旁边都有一个<h:inputText>来显示验证消息。

我希望特定字段是1到999999之间的数字,如果数字不在正确的范围内,这是要显示的验证消息。使用这个:

<f:validateLongRange minimum="1" maximum="999999"/>

我收到消息:

productId: Validation Error: Specified attribute is not between
the expected values of 1 and 999,999. 

我收到了一个请求,显示没有逗号分隔符的数字,但这包含我在faces.config中的语言环境。

起初我虽然是创建一个custon验证器的基本解决方案,它将检查提交的值是否为字符串,是否在所需的范围内,但在我看来有点矫枉过正。

还有其他办法吗?

2 个答案:

答案 0 :(得分:2)

如果您使用的是JSF 1.2,则可以在输入组件中设置备用验证消息:

<h:inputText value=".." validatorMessage="Please enter a valid number">
  <f:validateLongRange minimum="1" maximum="999999"/>
</h:inputText>

答案 1 :(得分:1)

您希望以哪种语言显示验证消息?

最近有一位同事必须解决(我认为)你的问题:我们是意大利语,意大利语包和意大利语语言环境加载,但是所有JSF验证消息(不是自定义的,为其正确设置和检索了语言环境)是用英语讲。 在查看了JSF jar文件之后,他发现从中检索此验证消息的属性文件只是...在意大利语中不可用! 他必须寻找已经(坏)翻译的属性文件并将其包含在JSF jar文件中。

希望它也能解决你的问题。