如何覆盖OmniFaces默认验证/转换错误消息?

时间:2014-06-30 13:01:00

标签: validation jsf jsf-2.2 omnifaces

我使用了一些OminFaces(1.8.1)验证器,例如,

<o:validateAllOrNone components="a b c d" showMessageFor="someComponent"/>

如果至少有一个指定的字段留空,在这种情况下会显示如下所示的默认消息。

  

a,b,c,d:请填写所有字段

我想在资源包中覆盖此类错误消息,尤其是为了获取本地化消息。

与JSF不同,OmniFaces中没有找到资源包。这仍然可以以某种方式覆盖此错误消息吗?

1 个答案:

答案 0 :(得分:3)

您可以使用message属性。

<o:validateAllOrNone components="a b c d" showMessageFor="someComponent"
    message="#{i18n['some.bundle.key']}" />

其中i18n是资源包的<resource-bundle><var>

实际上,OmniFaces ValidateMultipleFields组件不支持通过<message-bundle>提供这些消息,而无需每次都声明message属性。


巧合的是,3天前,我在即将发布的OmniFaces 2.0 committed several changes中使用了<message-bundle> <o:validateAllOrNone>,这些验证器可以在使用时通过<message-bundle>覆盖默认消息组件类型为关键。因此,如果component type "org.omnifaces.component.validator.ValidateAllOrNone" {{3}} {{3}},您应该能够在org.omnifaces.component.validator.ValidateAllOrNone = {0} all or none! 标识的资源包中覆盖它,如下所示:

{{1}}