我正在将我们的 JSF messages.properties 移到战争之外,因此 QA 和操作人员可以修改消息而不会产生新的战争。
我创建了一个 JBoss 7 模块并将 messages.properties 文件放在 $JBOSS_HOME/modules/com/acme/revenue/main/messages.properties 中。我更新了 jboss-deployment-structure.xml 以包含
<module name="com.acme.revenue"/>
我在 $JBOSS_HOME/modules/com/acme/revenue/main 中放置了一个 module.xml 文件。它包含:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.acme.revenue">
<resources>
<resource-root path="."/>
</resources>
</module>
这一切都有效。在我可以调用的java代码中:
ResourceBundle bundle = ResourceBundle.getBundle("messages", Locale.getDefault());
bundle.getString("TargetingKey")
它返回翻译后的值“收入目标”。但是在 JSF .xhtml 文件中,代码调用 #{messages.TargetingKey} 并且它不起作用,因为 JSF 似乎没有找到资源包。
在更改之前 faces-config.xml 包含以下内容并且运行良好:
<resource-bundle>
<base-name>com.acme.revenue.messages</base-name>
<var>messages</var>
</resource-bundle>
如何修复此 JSF 声明以查找捆绑包并显示消息?
谢谢你。