SpringMVC笔记(9):国际化

前言:

所谓国际化就是指WEB应用在不同的浏览环境中显示不同的语言,如汉语、英语等。Spring MVC框架对国际化操作做了很好的集成,只需简单配置即可完成国际化。

具体步骤

1.搭建Spring MVC环境。

2.配置springmvc.xml。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- 自动扫描包中的Controlller -->
    <context:component-scan base-package="com.southwind.controller"/>

    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"/><!-- 前缀 -->
        <property name="suffix" value=".jsp"/><!-- 后缀,自动拼接 -->
    </bean>

    <!-- 国际化资源文件 -->
    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <!-- 表示多语言配置文件在根路径下,以language开头的文件-->
        <property name="basename" value="classpath:language"/>
        <property name="useCodeAsDefaultMessage" value="true"/>
    </bean>

    <!-- 拦截器 -->
    <mvc:interceptors>
        <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
            <property name="paramName" value="lang"/>
        </bean>
    </mvc:interceptors>

    <!-- 配置SessionLocaleResolver,动态的获取Locale对象存入Session -->
    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"></bean>

</beans>

3.创建国际化资源文件language_en_US.properties和language_zh_CN.properties,分别存储英文和中文资源。

language_en_US.properties:

language.cn = \u4E2D\u6587
language.en = English
info = login
username = username
password = password
repassword = repassword
tel = tel
email = email
submit = submit
reset = reset

language_zh_CN.properties:

language.cn = \u4E2D\u6587
language.en = English
info = \u6CE8\u518C
username = \u7528\u6237\u540D
password = \u5BC6\u7801
repassword = \u786E\u8BA4\u5BC6\u7801
tel = \u8054\u7CFB\u7535\u8BDD
email = \u7535\u5B50\u90AE\u7BB1
submit = \u63D0\u4EA4
reset = \u91CD\u7F6E

4.创建Handler。

package com.southwind.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller
public class TestController {
    @RequestMapping("/test")
    public String index() {
        return "index";
    }
}

5.创建JSP,导入Spring MVC标签库,用spring:message标签绑定不同的语言信息。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page isELIgnored="false" %>
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <div>当前语言: ${pageContext.response.locale }</div>
    切换:
    <a href="?lang=zh_CN"><spring:message code="language.cn"/></a> &nbsp;&nbsp;&nbsp;
    <a href="?lang=en_US"><spring:message code="language.en"/></a>
    <h1>
        <spring:message code="info"/>
    </h1>
    <form action="" method="post">
        <table>
            <tr>
                <td>
                    <spring:message code="username"/>:
                </td>
                <td>
                    <input type="text"/>
                </td>
            </tr>
            <tr>
                <td>
                    <spring:message code="password"/>:
                </td>
                <td>
                    <input type="password"/>
                </td>
            </tr>
            <tr>
                <td>
                    <spring:message code="repassword"/>:
                </td>
                <td>
                    <input type="password"/>
                </td>
            </tr>
            <tr>
                <td>
                    <spring:message code="tel"/>:
                </td>
                <td>
                    <input type="text"/>
                </td>
            </tr>
            <tr>
                <td>
                    <spring:message code="email"/>:
                </td>
                <td>
                    <input type="text"/>
                </td>
            </tr>
            <tr>
                <td>
                    <input type="submit" value="<spring:message code="submit"/>"/>
                </td>
                <td>
                    <input type="reset" value="<spring:message code="reset"/>"/>
                </td>
            </tr>
        </table>
    </form>

</body>
</html>

6.启动tomcat,输入http://localhost:8080/springmvc-inter/test?lang=zh_CN,运行结果如下图。

7.输入http://localhost:8080/springmvc-inter/test?lang=en_US,运行结果如下图。

原文发布于微信公众号 - Java大联盟(javaunion)

原文发表时间:2018-11-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏代码拾遗

Spring Boot 2.0 教程 - 深入SpringAplication

可以通过SpringApplication.run() 方法轻松的启动一个Spring应用,例如

1174
来自专栏Java帮帮-微信公众号-技术文章全总结

Java开发Spring第一天

今日内容 Spring框架的概述 Spring的快速入门 IoC容器装配Bean(xml配置方式) Ioc容器装配Bean(注解方式) 在web项目中集成Sp...

3269
来自专栏用户2442861的专栏

使用IntelliJ IDEA 15和Maven 开发Spring Data JPA + MVC Web应用

http://blog.csdn.net/myarrow/article/details/50827370

2051
来自专栏Java技术栈

Spring MVC常用注解,你会几个?

常用注解 Controller 注解一个类表示控制器,Spring MVC会自动扫描标注了这个注解的类。 RequestMapping 请求路径映射,可以标注类...

32110
来自专栏坚毅的PHP

memcache 问题 socket or its streams already null in trueClose call

问题现象: 20台服务器有一台报monitor错误 ,查询日志: 05 11 09:37:48 [MaintThread] ERROR memcached.So...

3935
来自专栏JavaNew

Spring Boot实战:Restful API的构建

1705
来自专栏编程直播室

Spring Boot 之 Spring Data JPA 二 ( Query By Example)1 新建Spring Boot工程2 新建实体3 新建Repository4 新建一Service

2303
来自专栏LhWorld哥陪你聊算法

Flume篇---Flume安装配置与相关使用

Copy过来一段介绍Apache Flume 是一个从可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据资源中集中起来存储的工具/服务,或者数集...

2393
来自专栏大闲人柴毛毛

Spring速查手册——Bean装配

Spring提供三种Bean的装配方式,分别是: 1. 自动装配Bean 2. 在Java中装配Bean 3. 在XML中装配Bean 1. 自动...

3648
来自专栏玩转JavaEE

SpringMVC基础配置

按:最近公众号文章主要是整理一些老文章,主要是个人CSDN上的博客,也会穿插一些新的技术点。 ---- SpringMVC是什么,有多火,我这里就不再啰嗦了,S...

3677

扫码关注云+社区

领取腾讯云代金券