JSF如何通过配置语言环境来忽略操作系统语言



根据操作系统$LANG值的不同,在JSF页面中数字的显示是不同的。例如,使用代码:

<h:outputText value="#{myController.myNumberValue}" />

使用$LANG = en_US。ISO-8859-1,我有"623,451"。使用$LANG = fr_FR。UTF-8,我有"623 451"。

我的问题是我的应用程序如何独立于操作系统配置?

我在faces-config.xml中尝试了以下配置,但它不起作用:

<locale-config>
    <default-locale>en</default-locale>
</locale-config>

我还尝试将h:outputText标签封装在以下标签中,但它也不起作用:

<f:view locale="en">
    <h:outputText value="#{myController.myNumberValue}" />    
</f:view>
有什么办法可以解决我的问题吗?

JSF调用您的方法Integer.toString()或Long.toString()与默认区域设置。

第一解决方案:

从ServletContextListener调用Locale.setDefault(myHardcodeLocale);

第二方案:

创建自定义格式化程序。您可以使用facelets并为数字创建自己的outputText。

<h:outputText value="#{myController.myNumberValue}">
    <f:convertNumber type="#,###.00"/>
</h:outputText>

相关内容

  • 没有找到相关文章

最新更新