3

我使用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" />" />     
4

1 回答 1

2

不,那不是真的。ELparam对象将请求参数名称映射到单个值。如果param.locale存在,那么您可以locale通过fmt:setLocale/>标签进行设置。

本文中的文本 -通过自定义标签进行格式化和国际化

格式化数据时 JSTL 标记使用的语言环境通常是通过检查用户浏览器作为每个 HTTP 请求的一部分发送的 Accept-Language 标头来确定的。如果不存在这样的标头,那么 JSTL 提供了一组 JSP 配置变量,您可以设置这些变量来指定默认语言环境。如果尚未设置这些配置变量,则使用 JVM 的默认语言环境,该语言环境是从运行 JSP 容器的操作系统获得的。

并查看 SO 线程 -如何从 Java 代码中设置 JSTL 语言环境?

于 2012-12-19T07:34:29.383 回答