首页 > jstl中的bundle和locale到底是怎么运行的?

jstl中的bundle和locale到底是怎么运行的?

<%@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 头里

【热门文章】
【热门文章】