ssm框架requestmapping找不到_SSM 框架 i18n 国际化

编者: wRitchie(吴理琪) 来源:http://www.bj9420.com

基于项目的需要,现有的 Spring+SpringMVC+Mybatis 后台框架系

统,需要提供中、英版本,因而在实践中形成此文。

第一步:在 Spring核心配置文件中配置:

classpath:i18n/messageclasspath:i18n/user

第二步:创建国际化文件

1、在项目的 resource 目录下,创建 i18n 目录

d91d54c4b10c42690fa8191b5002cdb0.png

2、在 i18n 目录下新建 Resource Bundle,如下图:

db06b6d610a2314062119cc0a290a4ea.png

3、在 Create Resource Bundle 中输入使用的配置文件名,如图

7bf1643b3a8086013510e12ce670a603.png

4、点击 OK,即自动生成相应该语言的属性文件(也可以直接手动

新建属性文件)message_en_US.properties、

message_zh_CN.properties,如图

d6d19ca00efc36036def181256658bbe.png

5、.properties 文件格式,KeyValue键值对,采用模块(对象).字段(属性)的方式

object.field=中文值

object.field=En value

51f20a8b4c689ce79b448e95e783e1f8.png
6a15f6275bcff394a7c1d4d5ed3439d5.png

第三步:Controller 类中定义语言切换方法

@Slf4j@Controller@RequestMapping("i18nController")public class I18nController {    @RequestMapping("/locale")    public ModelAndView locale(@RequestParam("local") String locale, HttpSes           sion session) {            ModelAndView mv = new ModelAndView("/index.jsp");            if ("zh".equals(locale)) {                 Locale locale1 = new Locale("zh","CN");                  session.setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIB                 UTE_NAME,locale1);            }else {                   Locale locale1 = new Locale("en","US");                   session.setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIB                   UTE_NAME,locale1);            }            return mv;} }
@Slf4j@Controller@RequestMapping("i18nController")public class I18nController {@RequestMapping("/locale") public ModelAndView locale(@RequestParam("local") String locale, HttpSession session) {         ModelAndView mv = new ModelAndView("/index.jsp");         if ("zh".equals(locale)) {                 Locale locale1 = new Locale("zh","CN");                 session.setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale1);        }else {                Locale locale1 = new Locale("en","US");                session.setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale1);        }        return mv;   }}

第四步:前端页面

 '>中文 |'>English

效果图:

0d51996601dcdb22cfe8d665ca10a1d5.png
0ef7bce5aae2b7cd1632ddb3204637a7.png

附:

一、Java 控制类中的国际化:

RequestContext requestContext = new RequestContext(request);String webTitle= requestContext.getMessage("com.bj9420.web.title");

二、Java 常量类中的国际化(若没想到的话,挺费劲的,典型的难

者不会,会者不难)

public class SystemConstant {        public static String PLATFORM_TITLE = "com.bj9420.web.title";      public static final Map getSysTypeMap(){            Map map = new TreeMap<>();            map.put("05", "com.bj9420.constant.org.systype.store");//门店            map.put("01", "com.bj9420.constant.org.systype.supplier");//供应商            return map;       }}

三、JSP页面中的国际化:

至止,基本能解决 SSM 项目中的国际化问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值