动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

Spring MVC国际化和本地化教程实例

08-20 17:39 65浏览
举报 T字号
  • 大字
  • 中字
  • 小字

在计算机领域,国际化和本地化是计算机软件适应不同的语言和地区差异的手段。本文我们为小伙伴们带来Spring MVC国际化和本地化教程实例

国际化是设计的软件应用程序,以便它可以适应在没有更改设计的情况下,以各种语言和地区的过程中Spring通过实现MessageSource 接口,来支持国际化。如果启用了国际化配置了,SpringMVC通过前端控制器处理模型对象时会调用国际化getMessage()方法

本地化是适应一个特定的地区或语言的国际化软件加入区域设置特定的组件和翻译文本的过程。Spring提供了一个本地化解析器接口LocaleResolver,并且提供了很多实现类。DispatcherServlet允许使用客户端本地化信息自动解析信息。这个工作有实现LocaleResolver的对象来完成。

下面是基于Spring3 MVC的国际化和本地化教程实例。

1.创建Resouces 文件属性

我们将创建两个属性的文件,其中将包含所有要在应用程序中显示的消息。这些文件都保存在所谓的”资源”源文件夹。创建一个项目的源文件夹,右键单击项目名称>“新建”>“源文件夹和名称资源。

创建两个文件 messages_en.properties 和 messages_de.properties 在此文件夹,并复制到它下面的内容。

文件:资源/ messages_en.properties

label.firstname=First Name

label.lastname=Last Name

label.email=Email

label.telephone=Telephone

label.addcontact=Add Contact

label.menu=Menu

label.title=Contact Manager

label.footer=© ViralPatel.net

文件:资源/ messages_de.properties

label.firstname=Vorname

label.lastname=Familiename

label.email=Email

label.telephone=Telefon

label.addcontact=Addieren Kontakt

label.title=Kontakt Manager

label.menu=Menü

label.footer=© ViralPatel.net

2. Spring MVC配置国际化(i18n)/本地化(localization)

现在,我们已经为我们的应用程序创建了信息资源的属性。接下来,我们需要在 Spring 配置文件中声明这些文件我们将使用类

org.springframework.context.support.ReloadableResourceBundleMessageSource 定义消息资源。

此外,用户将能够选择应用程序的语言这是通过使用org.springframework.web.servlet.i18n.LocaleChangeInterceptor类和 LocaleChangeInterceptor 类,可以截获语言环境中的任何变化。这些变化,将其保存在未来要求的Cookie

org.springframework.web.servlet.i18n.CookieLocaleResolver

org.springframework.web.servlet.i18n.CookieLocaleResolver 类将被用来存储在cookie中的语言环境的变化。

Spring- servlet.xml 文件中添加下面的代码。

文件:WebContent / WEB - INF 文件/The Spring - servlet.xml 中
<bean id=“messageSource” 
class=“org.springframework.context.support.ReloadableResourceBundleMessageSource”>
<property name=“basename” value=“classpath:messages” />
<property name=“defaultEncoding” value=“UTF-8”/>
</bean>
<bean id=“localeChangeInterceptor” class=“org.springframework.web.servlet.i18n.LocaleChangeInterceptor”>
<property name=“paramName” value=“lang” />
</bean>
<bean id=“localeResolver” class=“org.springframework.web.servlet.i18n.CookieLocaleResolver”>
<property name=“defaultLocale” value=“en”/>
</bean>
<bean id=“handlerMapping” class=“org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping”>
<property name=“interceptors”>
<ref bean=“localeChangeInterceptor” />
</property>
</bean>

注意:在上述配置中,我们已经定义到 CLASSPATH messageSource bean 基名属性:消息。受此影响,Spring将确定的消息资源讯息:将被用于这个应用程序。

3.更改视图的JSP文件

现在,因为我们已经创建了两个消息资源文件和配置在 Spring MVC,我们将在JSP 文件中使用这些消

文件的 WebContent / WEB - INF / JSP / header.jsp 中
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<h3><spring:message code="label.title"/></h3>
<span style="float: right">
<a href="?lang=en">en</a>
|
<a href="?lang=de">de</a>
</span>
文件的 WebContent / WEB - INF / JSP / menu.jsp
<%@taglib uri="http://www.springframework.org/tags” prefix="spring”%>
<p><spring:message code="label.menu”/></p>
文件的 WebContent / WEB - INF / JSP / footer.jsp
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<spring:message code="label.footer"/>
文件的 WebContent / WEB - INF / JSP / contact.jsp
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
<title>Spring 3 MVC Series - Contact Manager</title>
</head>
<body>
<form:form method="post" action="addContact.html">
<table>
<tr>
<td><form:label path="firstname"><spring:message
code="label.firstname"/></form:label></td>
<td><form:input path="firstname" /></td>
</tr>
<tr>
<td><form:label path="lastname"><spring:message
code="label.lastname"/></form:label></td>
<td><form:input path="lastname" /></td>
</tr>
<tr>
<td><form:label path="lastname"><spring:message
code="label.email"/></form:label></td>
<td><form:input path="email" /></td>
</tr>
<tr>
<td><form:label path="lastname"><spring:message
code="label.telephone"/></form:label></td>
<td><form:input path="telephone" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="<spring:message code="label.addcontact"/>"/>
</td>
</tr>
</table>
</form:form>
</body>
</html>

请注意,在上面的JSP中,我们 标签来显示从资源包的消息。此外, header.jsp中的文件,我们已经指定了两个环节,选择语言。LANG=链接设置请求参数? 当用户点击这个链接。 注意,Spring 标识使用此请求参数

LocaleChangeInterceptor 拦截和相应改变的地方。另外请注意,在配置 LocaleChangeInterceptorThe Spring - servlet.xml 文件中,我们已经指定为”lang”property ”paramName”

因此 Spring 框架将寻找所谓的lang从请求参数

下面是Spring MVC国际化和本地化完成之后的应用程序

简而言之,国际化是指赋予软件可以被翻译的能力,本地化是指将软件进行软件翻译的过程。Spring MVC国际化和本地化在某种程度上加速了软件的国际化,增强了软件的适应能力。想要了解更多更全面的Spring MVC框架知识,可以观看本站的Spring MVC视频教程

0人推荐
共同学习,写下你的评论
0条评论
携代码的男孩纸
程序员携代码的男孩纸

24篇文章贡献108038字

作者相关文章更多>

推荐相关文章更多>

DOM渲染的详细过程

QCode09-04 14:38

CSS水平和垂直居中技巧大梳理

Code大师09-04 14:50

mui的input框在IOS系统下无法聚焦或点击多次才能聚焦

不写代码你养我啊08-23 11:14

推荐的-视.频播放器以及在线客服

不写代码你养我啊09-17 18:02

谈谈java多线程的三大特性

要学习了06-18 18:13

发评论

举报

0/150

取消