文档章节

springmvc 国际化

LonnyDong
 LonnyDong
发布于 2016/07/15 15:57
字数 376
阅读 15
收藏 1
点赞 0
评论 0

1。配置文件springmvc.xml

    <!-- 国际化支持 -->
    <bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basename" value="i18n/test_i18n" />
    </bean>

    <bean id="localeResolver"
        class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
        <property name="defaultLocale" value="en_US" />
    </bean>

    <bean id="localeChangeInterceptor"
        class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="lang" />
    </bean>

    <bean
        class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
        <property name="interceptors">
            <list>
                <ref bean="localeChangeInterceptor" />
            </list>
        </property>
    </bean>

红字标示的为存放i18文件的文件夹,且在src目录下

2。配置controller,根据用户自己的选择,修改语言环境

  if(lang.equals("zh")){
                    Locale locale = new Locale("zh", "CN"); 
                    request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale); 
                }else if(lang.equals("en")){
                    Locale locale = new Locale("en", "US"); 
                    request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale);
                }else 
                    request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,LocaleContextHolder.getLocale());

             }

 

3。配置完成就可以用了,通常会有以下几种情况

    2.1 页面信息的国际化,比如加载一个注册表单,那么  用户名/username 应该根据语言环境呈现。

    jsp 页面引入s 标签

     <%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>

       需要国际化的地方,引入对应的i18 属性 

    <spring:message code="loginpage.username"/>

    2.2  第二种情况是提示信息,比如用户提交表单,邮箱格式不合法,可以用过下面的方法获取国际化信息

locale = (Locale) httpRequest.getSession().getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME);

或者:

Locale locale = RequestContextUtils.getLocaleResolver(request).resolveLocale(request);  

String message = applicationContext.getMessage(code,args, locale);

getMessage中有四个变量,依次分别为message_*.properties文件中的key,key中{0}、{1}等对应的值,默认值和Locale。

再将拿到的信息返回页面

 2.3 还有其他的情形,比如jquery 的提示信息等等,官方好像有提供方案,待研究

 

 

© 著作权归作者所有

共有 人打赏支持
LonnyDong
粉丝 0
博文 26
码字总数 15163
作品 0
浦东
Spring Boot国际化开发实战

本章将讲解如何在Spring Boot和Thymeleaf中做页面模板国际化的支持,根据系统语言环境或者session中的语言来自动读取不同环境中的文字。 国际化自动配置 Spring Boot中已经对国际化这一块做了...

Java技术栈
06/08
0
0
springMVC国际化总结

1.配置springMVC 2.controller 拦截 3.freemarker页面的引用(jsp请自寻) 到org.springframework.web.servlet.view.freemarker目录下复制spring.ftl到相关目录(/WebRoot/WEB-INF/template......

登琼
2016/06/28
50
0
说说在 Spring 中如何国际化信息

1 MessageSource Spring 定义了 MessageSource 接口,用于访问国际化信息。 getMessage(String code, Object[] args, String defaultMessage, Locale locale) getMessage(String code, Objec......

deniro
05/27
0
0
spring 中beanFactory和ApplicationContext的区别

BeanFacotry是spring中比较原始的Factory。如XMLBeanFactory就是一种典型的BeanFactory。原始的BeanFactory无法支持spring的许多插件,如AOP功能、Web应用等。 ApplicationContext接口,它由B...

姚君
2014/04/02
0
0
【补充】Hibernate validator使用和自定义validator及整合Spring MVC

Hibernate validator使用 导入validation-api-xxx.jar 以及 hibernate-validator-xxx.Final.jar 需要检查的java bean Entity.java 值校验的测试类 输出结果 这里有一个国际化的key值,国际化文...

jason_wu_2
2016/12/27
387
0
1:spring mvc 概述

什么是mvc 什么是spring mvc Spring MVC 是一种基于 Java 的实现了 Web MVC 设计模式的请求驱动类型的轻量级 Web 框架, 即使用了MVC 架构模式的思想,将 web 层进行职责解耦, 基于请求驱动...

小杰java
2017/10/18
0
0
#springMessage()宏的解惑

#springMessage("xxx")处理国际化: spring处理国际化的方式可以很特别,因为可以使用这个标记. 这个标记是在spring整合velocity模版后才能使用.这个模版在: org.springframework.web.servlet...

Z_dragon
2015/01/08
0
1
SpringMVC国际化_个人小总结

SpringMVC的国际化也是挻好用的,主要通过下面2个步骤实现基本的功能。 一、先在XML文件中配置上如下一段: <bean id="messageSource" class="org.springframework.context.support.Resource...

KuhYygy
2013/09/02
0
0
springMVC学习-day05

国际化标签的使用 一: 国际化标签 所谓国际化就是支持多种语言,web应用在不同的浏览环境中可以显示出不同的语言 二:实现方法 在springMVC的配置文件中进行配置 国际化的配置文件(需要编写...

小四的窝
04/13
0
0
SpringMVC ------JstlView

若项目中使用JSTL,则SpringMVC会自动把视图由InternalResourceView转为JstlView 若使用JSTL的fmt标签则需要在SpringMVC的配置文件中配置国际化资源文件。 <bean id="messageSource" class"o...

Rickxue
2015/12/17
631
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Laravel5.5 MySQL配置、读写分离及操作

Laravel 让连接不同数据库以及对数据库进行增删改查操作: 参考:http://laravelacademy.org/post/854.html 配置读写分离 应用的数据库配置位于 config/database.php(但是数据库用户及密码等...

MichaelShu
5分钟前
0
0
TraitsUI与Mayavi实例

一:创建一个简单的TraitsUI与Mayavi实例 # -*- coding: utf-8 -*-from numpy import sqrt,sin,mgridfrom traits.api import HasTraits,Instancefrom traitsui.api import View,Item......

wangxuwei
10分钟前
0
0
Linux 查看用户

存储帐号的文件:/etc/passwd 存储密码的文件:/etc/shadow 查看当前系统所有用户 grep bash /etc/passwd root修改普通用户的密码 sudo passwd user_name 然后连续两次输入新的用户密码即可...

yeahlife
11分钟前
0
0
Webpack使用nodemon实时打包编译

业务场景: 1.编写一个npm组件包并且link到了项目文件中 2.需要不断的修改并run build编译npm包并且在项目run dev 查看效果 3.问题: 每次改完npm包都要手动run build编译十分的麻烦且低效,可不...

JamesView
22分钟前
0
0
电脑炸了,浪费我好几天时间,还是简要记下来吧

我的小本本一直在兢兢业业的干活,然而前几天说炸就炸了...... 爆炸现场: 软件: windows10 pro + EIS11+ 360卫士 BIOS:N1DET98W 2.24 硬件: Xeon E3 1505-V5 nv-M3000M thinkpadP70:20E...

Oh_really
27分钟前
0
0
Git之branch和checkout

1.branch是查看、创建、删除分支 #>git branch --helpNAME git-branch - List, create, or delete branchesSYNOPSIS git branch [--color[=<when>] | --no-color] [......

汉斯-冯-拉特
28分钟前
0
0
Mybatis拦截器之数据权限过滤与分页集成

需求场景 最近项目有个数据权限的业务需求,要求大致为每个单位只能查看本级单位及下属单位的数据,例如:一个集团军下属十二个旅,那么军级用户可以看到所有数据,而每个旅则只能看到本旅部...

佛系程序猿灬
37分钟前
9
0
SpringCloud 微服务 (十六) 服务追踪 Zipkin

问题 在服务中,有一个接口,该A接口中又调用了其他服务的B、C、D接口,出现一个请求耗时大的问题,这时候并不知道该B、C、D接口中哪个接口造成的耗时量,然后比如确定C服务接口出现的耗时量大,但...

___大侠
今天
0
0
Java面试基础篇——第八篇:抽象类与接口的区别

1.抽象类 抽象类:如果一个类中包含有抽象方法,或这个类使用abstract关键字修饰,则称这个类是抽象类。 抽象方法是什么呢?抽象方法就是指用abstract关键字修饰的方法。 需要注意的是:抽象...

developlee的潇洒人生
今天
2
0
jsoup 相关资料

1.jsoup 2.Jsoup概述 3.jsoup入门 4.jsoup Java HTML Parser 1.11.3 API

IT追寻者
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部