<%@page import="javax.servlet.jsp.jstl.core.Config"%>
<%@page import="java.util.Locale"%>
<%@ page contentType="text/html; charset=utf-8" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<fmt:setLocale value="${header['accept-language'] }" scope="session" />
${header['accept-language']}
<hr/>
<fmt:setBundle basename="resource" var="myres" scope="session" />
<fmt:bundle basename="resource">
<fmt:message key="hello" var="hello"></fmt:message>
<fmt:message key="label.phone" ></fmt:message>
${hello }
</fmt:bundle>
这是我的运行的java代码, 我设置了zh-CN的properties的属性文件, 也包含了默认的properties文件, 我的系统的默认环境是中文, 按照正常而言, 输出的文本应该是中文格式的, 但是google浏览器运行结果却是英文环境的, 如下图
我的配置文件:
resource.properties内容:
hello=Nice to meet you.
label.phone = phone
resource_zh_CN内容:
hello = 你好
label.phone = 电话
这到底是为什么, 这resourceBundle和locale两个类运行到底是怎么回事?
火狐的结果入下:
这个用的是 浏览器的 preferred language. Firefox的一般在Options ->Content ->Languages, 其他浏览器自己google. 最终此语言被放在HTTP请求的 Accept-Language 头里