Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 为什么JSTL';s fmt:setLocale标记仅在作用域设置为会话时工作?_Jsp_Localization_Jstl - Fatal编程技术网

Jsp 为什么JSTL';s fmt:setLocale标记仅在作用域设置为会话时工作?

Jsp 为什么JSTL';s fmt:setLocale标记仅在作用域设置为会话时工作?,jsp,localization,jstl,Jsp,Localization,Jstl,我的web应用程序有一个默认区域设置,它基于服务器所在的国家/地区。然而,该系统创造的就业岗位可以设在另一个国家,因此很容易有不同的地区。在某个页面上,我暂时(在页面范围内)尝试使用JSTL的fmt:setLocale标记将区域设置为显示的作业的区域设置,但它不起作用 我这样使用它,其中currentLocale是作业的区域设置代码(例如en_GB或en_HK) 这使用了默认的语言环境en_US,因此货币符号是美元,而不是上面示例中的港币 但是,当我将区域设置的范围更改为“会话”时,它会工作并使

我的web应用程序有一个默认区域设置,它基于服务器所在的国家/地区。然而,该系统创造的就业岗位可以设在另一个国家,因此很容易有不同的地区。在某个页面上,我暂时(在页面范围内)尝试使用JSTL的
fmt:setLocale
标记将区域设置为显示的作业的区域设置,但它不起作用

我这样使用它,其中currentLocale是作业的区域设置代码(例如en_GB或en_HK)

这使用了默认的语言环境en_US,因此货币符号是美元,而不是上面示例中的港币

但是,当我将区域设置的范围更改为“会话”时,它会工作并使用正确的货币代码:

<fmt:setLocale value="en_HK" scope="session"/>

但我不想因为明显的原因而覆盖会话的区域设置。有人知道为什么会出现这种情况,或者这个问题是否有解决办法?我看到过关于堆栈溢出的其他问题的评论,其中奇怪的人说
setLocale
标记只在scope设置为session时起作用,但没有人解释为什么会这样

仅供参考,以下是我发现的一个相关问题,其中人们也有类似的问题:


提前谢谢

如果没有为应用程序设置会话变量,应用程序将如何知道使用哪种语言?它已经在其他地方设置了。我需要为某些页面临时更改它,以便根据正在显示的作业的位置设置货币格式。“它已在其他位置设置。”如果将其设置为请求参数,则只要转到其他页面,该变量将为空。。。。如果不使用会话,如何存储当前设置的语言?web应用程序的区域设置在会话中设置。对不起,如果我不清楚的话。我需要临时告诉JSTL在几个页面上覆盖它,以便我可以格式化货币等。如果没有设置会话变量,应用程序如何知道使用哪种语言?它已经在其他地方设置了。我需要为某些页面临时更改它,以便根据正在显示的作业的位置设置货币格式。“它已在其他位置设置。”如果将其设置为请求参数,则只要转到其他页面,该变量将为空。。。。如果不使用会话,如何存储当前设置的语言?web应用程序的区域设置在会话中设置。对不起,如果我不清楚的话。我需要临时告诉JSTL在几页上覆盖它,以便我可以格式化货币,等等。
<fmt:setLocale value="en_HK"/>
<fmt:formatNumber value="${dailyRate}" type="currency"/>
<fmt:setLocale value="en_HK" scope="session"/>