提问人:Alireza Fattahi 提问时间:10/7/2023 最后编辑:Roman CAlireza Fattahi 更新时间:10/9/2023 访问量:62
语言环境中的 Struts 2 和 JDK 17 数字
Struts 2 and JDK 17 numbers in locale
问:
使用 struts 和 jdk 8,下面生成6.3.0.1
1, 2, 3,
<s:iterator begin="1" end="3">
<s:property value="top"/>,
</s:iterator>
通过更改为 jdk 17 它生成 ( 这些是波斯语数字۱, ۲, ۳,
1, 2, 3,
)
我将struts.locale
fa_IR
<constant name="struts.locale" value="fa_IR" />
该网站是多语言的,并且使用拦截器。i18n
这可能是一个不错的功能,但该网站的构建方式与英文数字一起使用。无论如何,无论语言环境如何,我都可以拥有英语数字吗?
我试图通过修复它,但没有运气session.setAttribute(Config.FMT_LOCALE, new Locale("en", "US"));
答:
1赞
Roman C
10/9/2023
#1
要打印英文数字,您应该更改 .但是您只在标签中打印它们。您应该知道如何从 JSP 中的 ActionContext
获取当前 Locale
。Locale
<s:iterator>
然后,在更改变量之前,将当前区域设置保存到变量中
<s:set var = "old_locale" value = "%{#context.locale}" />
<!-- then change a current locale -->
<s:set var = "%{#context.locale}" value = "%{new java.util.Locale("en", "US")" />
<!-- print numbers with a new locale -->
<s:iterator begin="1" end="3">
<s:property value="top"/>,
</s:iterator>
<!-- then return a current locale back -->
<s:set var = "%{#context.locale}" value = "%{#old_locale}" />
评论