zoukankan      html  css  js  c++  java
  • JAVA记录-SpringMVC国际化配置

    1.搭建SpringMVC框架,不过多阐述

    2.spring-mvc.xml加入以下配置:

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

    3.在resources新建目录messages,然后新建以下两个文件:

    messages_en_US.properties:money=money
    
    messages_zh_CN.properties:money=金钱

    4.后台控制器编写

    package com.net.xinfang.controller;
    
    
    import java.util.Locale;
    import javax.servlet.http.HttpServletRequest;
    import org.springframework.context.i18n.LocaleContextHolder;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.servlet.i18n.SessionLocaleResolver;
    
    
    @Controller
    @RequestMapping(value = "/cte")
    public class CntoEnController {
        
        @RequestMapping(value="/getcte", 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 "cte";
        }  
    }

    5.jsp页面编写

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    
    <%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
    
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>SpringMVC国际化</title>
    </head>
    <body>
     选择语言:<a href="${pageContext.request.contextPath}/cte/getcte?langType=zh">中文</a> | <a href="${pageContext.request.contextPath}/cte/getcte?langType=en">英文</a>
    <br></br>
    <spring:message code="money" />
    </body>
    </html>
    

    6.测试

  • 相关阅读:
    cookie,sessionStorage,loclaStorage,HTML5应用程序缓存
    网页设计单位 px,em,rem,vm,vh,%
    TCP协议三步挥手与四步挥手
    pycharm --批量注释和缩进
    Linux --编译kernel
    python-- pip 安装提速
    linux --tar: .BUILDINFO: time stamp 2020-08-27 17:25:55 is 68853652.868391065 s in the future .MTREE
    linux --This system is not registered to Red Hat Subscription Management
    Samba --配置Samba 服务
    linux --环境变量配置文件
  • 原文地址:https://www.cnblogs.com/xinfang520/p/7685484.html
Copyright © 2011-2022 走看看