详解SpringMVC学习系列之国际化

  

在系列(7)中我们讲了数据的格式化显示,春天在做格式化展示的时候已经做了国际化处理,那么如何将我们网站的其它内容(如菜单,标题等)做国际化处理呢?这就是本篇要将的内容→国际化。

  

  

首先配置我们项目的springservlet-config.xml文件添加的内容如下:

        & lt; bean id=癿essageSource”类=皁rg.springframework.context.support.ResourceBundleMessageSource”比;   & lt; !——国际化信息所在的文件名——比;   & lt;属性名=":" value=" https://www.yisu.com/zixun/messages "/比;   & lt; !——如果在国际化资源文件中找不到对应代码的信息,就用这个代码作为名称——比;   & lt;属性名=" useCodeAsDefaultMessage " value=" https://www.yisu.com/zixun/true "/比;   & lt;/bean>      

在com.demo.web.controllers包中添加GlobalController.java内容如下:

        包com.demo.web.controllers;      进口java.util.Date;   进口javax.servlet.http.HttpServletRequest;   进口org.springframework.stereotype.Controller;   进口org.springframework.ui.Model;   进口org.springframework.web.bind.annotation.RequestMapping;   进口org.springframework.web.bind.annotation.RequestMethod;   进口org.springframework.web.servlet.support.RequestContext;   进口com.demo.web.models.FormatModel;      @ controller   @RequestMapping (value=" https://www.yisu.com/global ")   公开课GlobalController {      @RequestMapping (value=" https://www.yisu.com/test ",方法={RequestMethod.GET})   公共字符串测试(HttpServletRequest请求,模型模型){   如果(! model.containsAttribute (“contentModel”)) {//从后台代码获取国际化信息   RequestContext RequestContext=new RequestContext对象(请求);   模型。addAttribute(“钱”,requestContext.getMessage(“钱”));   模型。addAttribute(“日期”,requestContext.getMessage("日期"));         FormatModel FormatModel=new FormatModel ();      formatModel.setMoney (12345.678);   formatModel。设置当前日期(新日期());      模型。addAttribute (“contentModel formatModel);   }   返回“globaltest”;   }      }      之前      

这里展示模型还用系列(7)中的作为演示。

  

在项目中的源文件夹资源中添加messages.properties, messages_zh_CN.properties, messages_en_US.properties三个文件,其中messages.properties, messages_zh_CN。属性里面的“钱”,“日期”,为中文,messages_en_US.properties里面的为英文。

  

在视图文件夹中添加globaltest.jsp视图,内容如下:

        % @ & lt;页面语言=癹ava”contentType=" text/html;charset=utf - 8”   pageEncoding=" utf - 8 " %比;   & lt; !DOCTYPE html公共”——//W3C html 4.01过渡//EN//DTD”“http://www.w3.org/TR/html4/loose.dtd”的在      & lt; %=@ taglib前缀“春”uri=" http://www.springframework.org/tags " %比;      & lt; html>   & lt; head>   & lt;元http-equiv=? type”内容=" text/html;charset=utf - 8”比;   & lt; title>插入标题here   & lt;/head>   & lt; body>         下面展示的是后台获取的国际化信息:& lt; br/比;   ${钱}& lt; br/比;   ${日期}& lt; br/比;      下面展示的是视图中直接绑定的国际化信息:& lt; br/比;   & lt;春天:消息代码=扒?祝辞:& lt; br/比;   & lt;春天:eval表达=" contentModel.money "祝辞& lt;/春天:eval> & lt; br/比;   & lt;春天:消息代码="日期"/祝辞:& lt; br/比;   & lt;春天:eval表达=" contentModel.date "祝辞& lt;/春天:eval> & lt; br/比;      & lt;/body>   & lt;/html>   之前      

运行测试:

  

详解SpringMVC学习系列之国际化

  

更改浏览器语言顺序,刷新页面:

  

详解SpringMVC学习系列之国际化

  

  

在项目的springservlet-config.xml文件添加的内容如下(第一种时添加的内容要保留):

        & lt; mvc: interceptors>   & lt; !——国际化操作拦截器如果采用基于(请求/会议/Cookie)则必需配置——比;   & lt; bean类=" org.springframework.web.servlet.i18n。LocaleChangeInterceptor”/比;   & lt;/mvc: interceptors>      & lt; bean id=發ocaleResolver”类=" org.springframework.web.servlet.i18n。SessionLocaleResolver”/比;   

详解SpringMVC学习系列之国际化