Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为JSF/ICEfaces设置浮点格式区域设置?_Java_Jsf_Internationalization_Icefaces - Fatal编程技术网

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

Java 为JSF/ICEfaces设置浮点格式区域设置?,java,jsf,internationalization,icefaces,Java,Jsf,Internationalization,Icefaces,我正在编写一个JSF(ICEfaces)应用程序,使用资源包处理国际化 应用程序很好地为资源包应用了(默认)荷兰“nl”语言环境,但在格式化浮点数时无法应用相同的语言环境,即使我使用显式设置了页面的语言环境 如何使浮点数符合当前的语言环境设置?很可能您没有使用将数字转换为相应语言环境的转换器 <f:view locale="nl"> <h:outputText value="#{numbers.someDouble}"> <f:convert

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

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


如何使浮点数符合当前的语言环境设置?

很可能您没有使用将数字转换为相应语言环境的转换器

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

faces-config.xml:

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

nl

一个小测试表明,在我的情况下,一个简单的“”就足够了。我不明白为什么JSF在默认情况下不会将浮点格式设置为当前的语言环境,但是您的解决方案工作得很好。谢谢
outputText
可能不直接支持数字;它将被赋予一个对象(例如,
java.lang.Double
),并在输出时对其调用
toString
inputText
也不会有任何直接支持;在输入字符串时,表达式语言根据其类型强制规则将其强制回double。对于更复杂的逻辑,需要一个转换器。这是一个功能强大的模型,因为您可以在不需要输入/输出控件支持转换的情况下转换为任何类型,您是对的!问题在于隐式java浮点。toSTrink()不考虑区域设置(甚至OS)。标记有效地告诉outputText使用区域设置感知的字符串转换。@McDowell您能解释一下该模式是如何解释的吗?提前谢谢@eljunior-如果帖子中的内容还不够,请提出一个新问题。
    <application>
        <locale-config>
          <default-locale>nl</default-locale>
        </locale-config>
    </application>