我正在战争之外移动我们的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"/>
我将一个module.xml文件放在$ JBOSS_HOME / modules / com / acme / revenue / main中。它包含:
<?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声明以查找捆绑包并显示消息?
谢谢。
答案 0 :(得分:0)
当您创建模块时,您为name=com.acme.revenue
提供了faces-config.xml
,这类似于<resource-bundle>
<base-name>messages</base-name>
<var>messages</var>
</resource-bundle>
的静态导入,因此在资源包声明中您必须只输入属性文件的基本名称 文件名。
{{1}}