我使用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" />" />
答案 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?