鉴于以下ResourceBundle性文件:

  1. 消息。性能
  2. messages_en.性能
  3. messages_es.性能
  4. messages_{的一些区域}.性能

注:消息。性质包含了所有的邮件对于默认的区域设置。messages_en.性能是真空的-这是仅有的正确性。messages_en.性将回落到消息。属性!

并给予以下config params在web.xml:

<context-param> 
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>messages</param-value>
</context-param>

<context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.fallbackLocale</param-name>
    <param-value>en</param-value>
</context-param>

我希望,如果所选择的区域设置'es',而一个资源不是翻译的在'es',那么它将回落到'en',最后的消息。属性'(由于messages_en.性能是空的)。

这是如何工作的码头。我们还测试了这个WebSphere。

树脂的问题

问题是,当我得到树脂(3.0.23).回退的决议并没有在所有的工作!为了得到一个消息显示,我必须做到以下几点:

  1. 重命名的消息。性messages_en.特性(基本上, 交换 内容的信息。性和messages_en.性)
  2. 确保永远关键在messages_en.属性的定义也在messages_{每一个其他区域}.性质(即使在准确的相同)。

如果我不做这个,我得到"???一些。钥匙???" 在Jsp。

请帮帮忙!这是令人费解。

-- LES

解决方案

添加以下来pom.xml (如果你使用的专家)

...
<properties>
    <taglibs.version>1.1.2</taglibs.version>
</properties>
...

    <!--
        Resin ships with a crappy JSTL implementation that doesn't work with
        fallback locales for resource bundles correctly; we therefore include
        our own JSTL implementation in the WAR, and avoid this problem. This
        can be removed if the target container is not resin.
    -->
    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>${taglibs.version}</version>
        <scope>compile</scope>
    </dependency>
有帮助吗?

解决方案

我不这样做树脂,所以,不要针对我,但是这些症状使它听起来像是它的船只与一个不烤JSTL执行情况。试用实例来复盖它与一个更体面的一个在webapp的 /WEB-INF/lib.如果Servlet2.5,得到 jstl-1.2.jar, 或者如果Servlet2.4,得到 jstl.jar 和standard.jar.

其他提示

只是一个想法,但你可以试试加入这一背景下参数:

<context-param> 
    <param-name>javax.servlet.jsp.jstl.fmt.locale</param-name>
    <param-value>en</param-value>
</context-param>

这有可能是树脂是使用这样的东西为后备'地区。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top