我目前有一个JSF应用程序,它根据用户的语言选择设置语言环境。他得到一个下拉列表,当选择英语时,我将语言环境设置为en等。 这对于数字格式以及从我的ResourceBundle加载的语言字符串非常有用。
所以对于en,我得到英语单词和a。作为十进制分隔符。 对于fr,我得到法语和a,作为十进制分隔符。
但是,现在要求对于此网站,数字格式必须始终具有十进制分隔符。所以,我正在考虑将语言环境固定为fr。
用户必须能够改变他的语言。 那么,JSF是否可以在不改变语言环境的情况下加载不同的语言?
答案 0 :(得分:2)
接缝需要特殊的格式化解决方案,因此覆盖格式化程序可能是更好的解决方案。我认为JSF支持替换默认的数字格式。
答案 1 :(得分:1)
只需明确指定您在那里使用的locale
代码的<f:convertNumber>
属性。
E.g。
<f:convertNumber ... locale="fr" />
或类似
<f:convertNumber ... locale="#{app.defaultNumberLocale}" />
否则确实会默认为UIViewRoot#getLocale()
,正如您所遇到的那样。
<f:convertNumber>
tag documentation - 阅读locale
属性