Spring框架学习(9)SpringMVC国际化(多语言)

前言

记录学习历程

SpringMVC国际化

SpringMVC提供了对国际化的支持,使用ResourceBundleMessageSource实现国际化资源的定义
例:
(1)配置springmvc.xml配置文件

    <!--配置ResourceBundleMessageSource-->
   <!-- basename属性指定文件的基名,这里是资源文件以mess打头-->
    <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basename" value="mess"/>
    </bean>
    <!--配置SessionLocaleResolver,用于将local对象存储于Session中-->
    <bean id="localResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>
    <!--配置LocaleChangeInterceptor,用于获取请求中的locale信息,将其转为Locale对象,获取LocaleResolver对象-->
    <mvc:interceptors>
        <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"></bean>
    </mvc:interceptors>

(2)在src目录下创建国际化资源属性文件
mess_en_US.properties,mess_zh_CN.proerties
创建file文件改后缀得到

mess_en_US.properties:

loginName=LoginName
loginPwd=LoginPwd

mess_zh_CN.properties

loginName=\u728\u6237\u540D
loginPwd=\u5BC6\u7801

(3)在HelloController类中添加方法

//国际化
    //Locale 表示地区,每一个Locale对象都代表了一个特定的地理、政治和文化地区
    @Autowired
    private ResourceBundleMessageSource messageSource;
    @RequestMapping(value = "/localeChange")
    public String localeChange(Locale locale) {
        //MessageSource接口,以用于支持信息的国际化和包含参数的信息的替换
        String u = messageSource.getMessage("loginName",null,locale);
        System.out.println("国际化资源文件Locale配置(loginName):"+u);
        return "login";
    }

    @RequestMapping("/toLocale")
    public String toLocale(){
        return "login";
    }

(4)index.jsp加一个跳转到login.jsp界面的超链接
新建login.jsp
index.jsp超链接

 <a href="/springmvc/toLocale">TO LocaleChange</a>

新建login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"  %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <a href="/springmvc/localeChange?locale=zh_CN">中文</a><br>
    <a href="/springmvc/localeChange?locale=en_US">英文</a><br>
    <fmt:message key="loginName"/><br>
    <fmt:message key="loginPwd"/><br>
</body>
</html>

login.jsp页面头部使用taglib指令引入JSTL的fmt标签
项目中需要加入两个包
在这里插入图片描述
(5)测试

发布了49 篇原创文章 · 获赞 0 · 访问量 1253

猜你喜欢

转载自blog.csdn.net/key_768/article/details/103991365