Java-JSF语言环境:浏览器定义的语言似乎被忽略

目前,我的团队正在用Java开发Web 2.0应用程序,而我们正在将JSF用于表示层.我们从表示层开始,因此我们尚未添加业务和数据层.

我们使用的技术:
-JSF(Mojarra 2.0.3)
-Primefaces 2.1(组件的JSF库)
-Spring Security 3.0.5
-jBoss 5.1

我被要求向应用程序添加语言环境支持.因此,我将faces-config.xml文件配置如下:

<application>
    <locale-config>
        <default-locale>en</default-locale>
        <supported-locale>pt</supported-locale>
        <supported-locale>en</supported-locale>
        <supported-locale>es</supported-locale>
    </locale-config>
    <message-bundle>
        com.<company>.<product>.i18n.MessageBundle
    </message-bundle>
</application>

我创建了MessageBundle后缀文件并部署了该应用程序.我读到,JSF使用3条标准来选择语言环境:
1)在请求语言环境(接受语言请求标头)和支持的语言环境之间进行匹配
2)在Faces配置文件中定义的应用程序默认语言环境
3)JVM默认语言环境

当我尝试在浏览器选项中更改语言时,应用程序不会更改语言环境.即使我只配置默认语言以外的一种语言.我在这里想念什么吗?这是预期的还是实际上在我更改浏览器语言时(如果它是受支持的语言)它应该更改内容?

我非常感谢任何提示,或者至少是关于在哪里可以找到答案的指针,因为我已经用谷歌搜索了它,但是没有运气.

提前致谢.

解决方法:

更改浏览器定义的区域设置后,需要在浏览器中刷新页面.您还需要认识到< message-bundle>用于本地化的转换/验证消息,而不用于本地化的内容.在那里,您应该使用< resource-bundle>在faces-config.xml和/或< f:loadBundle>中在XHTML中.

上一篇:通过JCA错误进行Java大型机通信-连接不在事务中


下一篇:Java-WEB-INF / lib的内容的JBOSS排序