• 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.测试

  • 相关阅读:
    算法题汇集
    C# WinForm MDI左右分栏 多文档
    DDoS和CC攻击的区别
    搭建java程序写的博客Jpress
    U盘图标DIY方法
    磁盘空间不够用?教你一键清理电脑重复文件Duplicate File Finder
    给WordPress文章页URL赋予.html后缀
    使用七牛云和PicGo搭建图床
    wordpress好用的Markdown插件WP Editor.MD
    虚拟主机、VPS、云服务器三者的区别
  • 原文地址:https://www.cnblogs.com/xinfang520/p/7685484.html
Copyright © 2020-2023  润新知