我的组件库目录树的设置如下:
resources
mylib
css
mycomponent.css
properties
mycomponent.properties
mycomponent.xhtml
我想在mycomponent.xhtml中加载属性文件以用于消息。这样做的正确方法是什么?有f:loadbundle类型的解决方案吗?
最佳答案
复合组件通过#{cc.resourceBundleMap}
隐式支持资源束。这仅需要:
捆绑文件与复合XHTML本身放在同一(子)文件夹中。
捆绑文件具有与复合XHTML本身完全相同的文件名(前缀)。
因此,如果您进行一些重组,
WebContent
|-- resources
| `-- mylib
| |-- mycomponent.css
| |-- mycomponent.properties
| `-- mycomponent.xhtml
:
然后,您应该可以按以下方式访问它:
<cc:implementation>
<h:outputStylesheet library="mylib" name="mycomponent.css" />
...
<p>Property with key "foo": #{cc.resourceBundleMap.foo}</p>
<p>Property with key "foo.bar": #{cc.resourceBundleMap['foo.bar']}</p>
</cc:implementation>