springMVC 实现 web 国际化开发 ?

引言 :

最近,在接触的项目中用到了 国际化 的开发模式,因为是首次接触,这里写博客记录下,也方便以后查阅。自己对于它的理解是,用多种语言实现的多个版本的 web 页面。比较一般比较官方的网站或者文档,都会提供中文和英文版,可以让读者自己选择阅读模式。这种用不同语言实现相同页面的 web 开发方式,就可以理解为国际化的开发。

使用 SpringMVC4.2.4 版本,在 JSP 页面中使用 <spring:message> 标签只能显示默认语言,无法动态切换,而在JAVA后台则可以动态切换。项目中用的是 <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <spring:message code='XXX'/> 标签实现的国际化 。


具体操作步骤 :

  • 相关结构文件目录 :

  • web.xml 中增加  :
//这样jsp中就能识别spring:message标签了
 <jsp-config>  
    <taglib>  
      <taglib-uri>/spring</taglib-uri>  
      <taglib-location>/WEB-INF/resources/spring-form.tld</taglib-location>  
    </taglib>  
  </jsp-config> 
  • spring-mvc.xml 配置文件中 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>
	
    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" />  

  
  • 在src根目录下面新建下面文件 :

在 poperties 目录下创建 en_US 和 zh_CN 目录 和 messages.properties 文件:


zh_US 目录下 message.properties 文件 :

// 这里简单示例 :
login.btn=登陆~
login.password=密码~
login.remember=记住我~
login.tip=请登录~
login.username=用户名~

en_CN 目录下 message.properties 文件 :

// 这里简单示例
login.btn=Sign In
login.password=PassWord
login.remember=Remember Me
login.tip=Please sign in
login.username=UserName
  • 在页面中可以直接使用 : 
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%-- 
在 页面中添加如下内容,(添加标签),uri的内容在org.springframework.web.servlet-3.1.1.RELEASE.jar包下面的META-INF/spring.tld文件。
--%>
<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Message Tag Demo</title>
    </head>
    <body>
         <h1>
            <!-- code后值是.properties 文件中的key, arguments是用来给资源文件添加参数的,argumentSeparator是用来分割多个参数的标记 -->
            <spring:message code="welcome" arguments="Justin,Lin"/>
         </h1>    
    </body>
</html>
  • <spring:message> 标签 :

可以使用<spring:message>标签结合 ResourceBundleMessageSource 的功能,在网页上显示 messages.properties 中的文字讯息。注意: messages.properties 档案必须在 Classpath 可以存取到的路径下。


了解更多 :

https://www.cnblogs.com/yiyongyao/p/4699936.html

https://segmentfault.com/a/1190000010809172

http://www.zuidaima.com/share/1634244049275904.htm

https://recomm.cnblogs.com/blogpost/3223844

https://blog.csdn.net/qq_41541619/article/details/80459932

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值