是否有办法为不同类型的复合组件提供必需的消息?
我希望能够在消息包中说出以下内容
javax.faces.component.UIInput.REQUIRED=Please enter a value for {0}
com.anon.sandbox.jsf.component.NameField.REQUIRED=ENTER A {} OR DIE
com.anon.sandbox.jsf.component.EmailField.REQUIRED=You forgot to enter a {0} address
我可以通过为每种输入字段实现自定义验证器来实现这一点,但考虑到我想要自定义的唯一行为是错误消息,这看起来有点过分。
答案 0 :(得分:1)
使用requiredMessage
属性指定它们。
<h:inputText ... requiredMessage="#{cc.resourceBundleMap.requiredMessage}" />
对于您不知道的情况,#{cc.resourceBundleMap}
引用由.properties
文件标识的复合组件特定资源包,其文件名与同一文件夹中的复合组件相同。
因此,假设您有一个复合组件文件foo.xhtml
,那么您可以在foo.properties
(以及foo_en.properties
,foo_es.properties
等)中指定本地化消息它们位于同一个文件夹中。然后,前面提到的#{cc.resourceBundleMap}
可以获得这些本地化的消息。