所谓国际化就是支持多种语言,web应用在不同的浏览环境中可以显示出不同的语言,比如说汉语、英语等。
下面简单说一下Springmvc下的i18n的国际化配置:
下面简单说一下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中英文转换就好了,当然你也可以增添其他国家的语言,这里就不示范了