SpringMvc国际化i18n

所谓国际化就是支持多种语言,web应用在不同的浏览环境中可以显示出不同的语言,比如说汉语、英语等。
   下面简单说一下Springmvc下的i18n的国际化配置:

首先发下我的目录结构图:



springmvc-servlet.xml文件中添加如下配置:

<!-- 存储区域设置信息
    SessionLocaleResolver类通过一个预定义会话名将区域化信息存储在会话中
    从session判断用户语言defaultLocale :默认语言-->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
    <property name="defaultLocale" value="zh_CN" />
</bean>

<!-- 国际化资源文件
messageSource配置的是国际化资源文件的路径,
classpath:messages指的是classpath路径下的
messages_zh_CN.properties文件和messages_en_US.properties文件
设置“useCodeAsDefaultMessage”,默认为false,这样当Spring在ResourceBundle中找不到messageKey的话,就抛出NoSuchMessageException,
把它设置为True,则找不到不会抛出异常,而是使用messageKey作为返回值。 -->
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="defaultEncoding" value="UTF-8" />
    <property name="useCodeAsDefaultMessage" value="true" />
    <property name="basenames" >
        <list>
            <value>classpath:messages</value>
        </list>
    </property>
</bean>
<!--该拦截器通过名为”lang”的参数来拦截HTTP请求,使其重新设置页面的区域化信息-->
<mvc:interceptors>
    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="lang" />
    </bean>
</mvc:interceptors>

这里的就是国际化的配置了,每个配置的作用呢都非常清楚写了注释了。。

TITLE = 开始冒险之旅
USERNAME = 账号:
PASSWORD = 密码:
LOGIN = 登录

TITLE = BEGIN TO TRAVEL
USERNAME = UserName
PASSWORD = PassWord
LOGIN = Login
两个测试的properties文件如上


controller方法如下:

@RequestMapping(value = "getLogin.do")
public ModelAndView getLogin(){
    return new ModelAndView("result");
}


index.jsp:内容如下

<body>
<a href="getLogin.do?lang=zh_CN">中文</a>
<br />
<a href="getLogin.do?lang=en_US">英文</a>
</body>

result内容如下:

<body>
   <div class="login">
      <h1><spring:message code="TITLE" /> </h1>
      <form action="test.do" method="post">
         <input type="text" name="name" placeholder=<spring:message code="USERNAME" /> required="required" value="" />
         <input type="password" name="password" placeholder=<spring:message code="PASSWORD" /> required="required" value="" />
         <button type="submit" class="btn btn-primary btn-block btn-large"><spring:message code="LOGIN" /> </button>
      </form>
   </div>
</body>
记得在jsp页面的开头加上spring的标签库:

<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>


启动tomcat,


点击英文:


点击中文:


这样一个简单的i18n中英文转换就好了,当然你也可以增添其他国家的语言,这里就不示范了


猜你喜欢

转载自blog.csdn.net/qq_32953079/article/details/60136681