如何在JSSt资源包驻留在JBoss 7模块中时声明它?

时间:2014-04-17 19:38:19

标签: java jsf jboss jboss7.x jboss-modules

我正在战争之外移动我们的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声明以查找捆绑包并显示消息?

谢谢。

1 个答案:

答案 0 :(得分:0)

当您创建模块时,您为name=com.acme.revenue提供了faces-config.xml,这类似于<resource-bundle> <base-name>messages</base-name> <var>messages</var> </resource-bundle> 静态导入,因此在资源包声明中您必须只输入属性文件的基本名称 文件名

{{1}}