【问题标题】:The <fmt:setLocale value="${param.locale }" scope="session" />tag is not used未使用 <fmt:setLocale value="${param.locale }" scope="session" /> 标签
【发布时间】:2012-12-19 06:49:03
【问题描述】:

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

【问题讨论】:

  • 请出示您的代码好吗?
  • java.sun.com/jsp/jstl/fmt" %>

    " />

标签: java jsp localization


【解决方案1】:

不,那不是真的。 EL param 对象将请求参数名称映射到单个值。如果param.locale 存在,则可以通过fmt:setLocale/&gt; 标签设置locale。

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

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

看看 SO 线程 - How to set JSTL locale from Java code?

【讨论】:

  • 虽然我没有完全理解,但我觉得你说的很有道理。我以后会仔细研究的。谢谢。
猜你喜欢
  • 2020-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-10
  • 1970-01-01
  • 2015-08-18
  • 1970-01-01
相关资源
最近更新 更多