专栏首页IT笔记springMVC配置 国际化实现中英文切换

springMVC配置 国际化实现中英文切换

一.基于session的国际化实现:

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

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
        <!-- 国际化信息所在的文件名 -->                     
        <property name="basename" value="messages" />   
        <!-- 如果在国际化资源文件中找不到对应代码的信息,就用这个代码作为名称  -->               
        <property name="useCodeAsDefaultMessage" value="true" />           
    </bean>
    <mvc:interceptors>  
         <!-- 国际化操作拦截器 如果采用基于(请求/Session/Cookie)则必需配置 --> 
         <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />  
    </mvc:interceptors>  
    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

二、在项目中的源文件夹resources中添加messages.properties、messages_zh_CN.properties、messages_en_US.properties三个文件,其中messages.properties、messages_zh_CN.properties里面的"money", "date",为中文,messages_en_US.properties里面的为英文。 三、配置index.jsp

<%@ page contentType='text/html; charset=UTF-8'%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<a href="switch?langType=zh">中文</a> | <a href="switch?langType=en">英文</a><br/>
<spring:message code="index"/>
</br>
哈哈哈哈 这是个主页
</body>
</html>

四、后台配置

/**
 * 中英文语言切换
 * 创建者    张志朋
 * 创建时间    2016年8月1日
 *
 */
@Controller
public class GlobalController extends BaseController {
    
    @RequestMapping(value="/switch", method = {RequestMethod.GET})
    public String test(HttpServletRequest request,Model model, @RequestParam(value="langType", defaultValue="zh") String langType){
            
            if(langType.equals("zh")){
                Locale locale = new Locale("zh", "CN"); 
                request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale); 
            }
            else if(langType.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());
            }
        return "modules/index";
    }
    
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JAVA工作三年面试(二)

    这里讲述下第二家公司的面试,这是一家大型互联网公司,简称W,一般像博主这样的传统行业去跳到这种公司简直是要跪舔的节奏,所以从一开始就带着一份敬仰之情去面试。由于...

    小柒2012
  • ArrayList和LinkedList的区别

    首先来看ArrayList和LinkedList的集成类和接口的区别。 public class ArrayList<E> extends AbstractLi...

    小柒2012
  • Nginx学习之如何搭建文件防盗链服务

    大家都知道现在很多站点下载资料都是要收费的,无论是积分还是金币,想免费只能说很少很少了,那么这些网站是如何做到资源防盗链的呢?

    小柒2012
  • Django小技巧14: messages 框架

    让用户知道应用程序发生了什么, 是个极好的用户体验。让应用程序和用户之间能够有个很好的『交流』是个不错的选择。

    用户1416054
  • 为什么要从 FMDB 迁移到 WCDB?

    希望通过本文全面地介绍 WCDB 和 FMDB 在使用方式、性能等方面的差异,以及迁移中可能遇到的问题,帮助开发者决定是否进行迁移。

    微信终端开发团队
  • 7 月编程语言指数榜:Python 与 Java 逐渐拉开差距

    PYPL 已发布7月编程语言指数榜,Python 在今年5月首次超越 Java 拿下榜首位置后,保持上涨趋势,正逐渐与 Java 拉开差距。

    IT派
  • 给服务器安装IIS添加WEB服务器角色

    新安装的win server服务器,想要搭建网站并让其他人访问需要给服务器安装IIS添加WEB服务器角色,下面以windows server 2016数据中心为...

    前端皮皮
  • Android RecyclerView区分视图类型的Divider的实现

    我们都知道support库有一个DividerItemDecoration, 可以作为Item之间的分隔线(divider)。但它作用以后所有的item之间都会...

    砸漏
  • 搞定面试算法系列 | 贪心算法与正确性归纳证明

    贪心算法就是让计算机模拟一个「贪心的人」来做出决策。这个贪心的人是目光短浅的,他每次总是:

    江不知
  • 【JavaWeb】60:数据表基本操作

    以上便是对Java和SQL中数据类型的对比,毕竟主要是学Java的,将其对比起来记忆也更好理解。

    刘小爱

扫码关注云+社区

领取腾讯云代金券