SpringMvc国际化i18n

来源:互联网 发布:pic16f877a单片机 编辑:程序博客网 时间:2024/06/05 15:16
所谓国际化就是支持多种语言,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 TRAVELUSERNAME = UserNamePASSWORD = PassWordLOGIN = 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中英文转换就好了,当然你也可以增添其他国家的语言,这里就不示范了


0 0