我试图在我的 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"/>