gpt4 book ai didi

jsp - 如何制作 fmt :setLocale work on fmt:formatNumber with only language code in JSP?

转载 作者:行者123 更新时间:2023-12-04 14:36:04 25 4
gpt4 key购买 nike

我正在尝试在我的 JSP Web 应用程序上本地化货币,问题是当我要求语言环境时,我只得到语言代码(“en”)而不是完整的语言和国家代码(“en_US”)。问题是,当 setLocale 的值不包含语言和国家/地区代码时,formatNumber 不起作用。

我可以通过在jsp页面开头检查区域设置语言并为少数语言设置默认国家代码然后设置setLocale的值来解决它,但是这种方法对我来说看起来很丑陋。有更好的方法吗?

这就是我现在的做法:

<c:choose>
<c:when test="${pageContext.response.locale == 'cs'}">
<f:setLocale value="cs_CZ" />
</c:when>
<c:otherwise>
<f:setLocale value="en_US" />
</c:otherwise>
</c:choose>
<f:formatNumber type="currency" value="${product.price}" currencyCode="CZK"/>

最佳答案

货币取决于国家,而不是语言。你真的需要设置它。一种更通用的方法是为此使用 Filter,这样您就不需要在每个 JSP 中复制粘贴检查。

更新:我现在看到你正在使用 HttpServletResponse#getLocale()它返回以编程方式设置的语言环境或容器的默认语言环境。通常的做法是使用 HttpServletRequest#getLocale()获取客户端的语言环境,因此:

${pageContext.request.locale}

看看是否有帮助。但是,您仍然需要检查该国家/地区是否实际存在。 Filter 是最好的选择。

关于jsp - 如何制作 fmt :setLocale work on fmt:formatNumber with only language code in JSP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2258318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com