<fmt:setlocale value =“$ {param.locale}”scope =“session”>标签未使用</fmt:setlocale>

时间:2012-12-19 06:49:03

标签: java jsp localization

我使用MyEclipse编译我的程序,我想实现国际化,所以我选择使用fmt标签。

以下是代码:

<fmt:setLocale value="${param.locale }" scope="session" />

本书说${param.locale }可以获得浏览器的default-language。为了改变语言,我使用两种语言,英语和中文。虽然我将浏览器的default-language设置为英语,但当我重新加载jsp页面时,语言总是中文。你能告诉我这是怎么回事吗?

完整代码:

<%@ taglib prefix="fmt" uri="java.sun.com/jsp/jstl/fmt"; %> 
<fmt:setLocale value="${param.locale }" scope="session" /> <fmt:setBundlebasename="loginpage"/> <input type="text" id="text1" /> <br/> <input type="password" id="text2" /> <br /> <input type="submit" id="smb" value="<fmt:message key="login_sub" />" />     

1 个答案:

答案 0 :(得分:2)

不,那不是真的。 EL param对象将请求参数名称映射到单个值。如果存在param.locale,则可以将locale设置为fmt:setLocale/>代码。

本文中的文字 - Formatting and internationalization through custom tags

  

正常格式化数据时JSTL标记使用的语言环境   通过检查用户发送的Accept-Language标头来确定   浏览器作为每个HTTP请求的一部分。如果没有这样的标题,   然后JSTL提供了一组可以设置的JSP配置变量   指定默认语言环境。如果这些配置变量没有   已设置,然后使用JVM的默认语言环境,即获取该语言环境   从运行JSP容器的操作系统开始。

并查看SO帖子 - How to set JSTL locale from Java code?