使用 struts
6.3.0.1
和 jdk 8,下面生成 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"));
修复它,但没有运气
要打印英文数字,您应该更改
Locale
。但您只能在 <s:iterator>
标签中打印它们。您应该知道如何从 JSP 中的 Locale
获取当前的 ActionContext
。
然后在更改之前将当前区域设置保存到变量中
<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}" />