为JSF / ICEfaces设置浮点格式化区域设置?

时间:2009-11-16 11:35:03

标签: java jsf internationalization icefaces

我正在使用资源包编写一个JSF(ICEfaces)应用程序来处理国际化。

应用程序很好地为资源包应用(默认)荷兰语“nl”语言环境,但在格式化浮点数时无法应用相同的语言环境,即使我使用<f:view locale="nl">显式设置页面的语言环境。

如何使浮点数符合当前的区域设置?

2 个答案:

答案 0 :(得分:6)

您可能没有使用转换器将format数字转换为适当的区域设置。

  <f:view locale="nl">
    <h:outputText value="#{numbers.someDouble}">
      <f:convertNumber pattern="#,##0.00;(#,##0.00)" />
    </h:outputText>
    <br />
    <h:outputText value="#{numbers.someDouble}">
      <f:convertNumber locale="en" pattern="#,##0.00;(#,##0.00)" />
    </h:outputText>
  </f:view>

此视图(带有数字的荷兰语区域设置视图,后跟英语区域设置编号)会产生以下输出:

12.341.234,43
12,341,234.43

答案 1 :(得分:1)

您可以使用nest <convertNumber>标记并在faces.config.xml中将默认语言环境设置为“nl”。 这样,转换器会自动获取并使用默认语言环境,您无需在每个<convertNumber>标记处指定模式。

faces-config.xml中:

    <application>
        <locale-config>
          <default-locale>nl</default-locale>
        </locale-config>
    </application>