java系统国际化的配置

Wesley13
• 阅读 572

本代码来源于开源MyExam系统

首先写好资源文件:

message_en_US.properties

等等

springmvc-servlet.xml文件

<beanid=_"messageSource"_class=_"org.springframework.context.support.ResourceBundleMessageSource"_>

<propertyname=_"basename"_value=_"message"_/>

<propertyname=_"useCodeAsDefaultMessage"_value=_"true"_/>

</bean>

  <beanid=_"localeChangeInterceptor"_class=_"org.springframework.web.servlet.i18n.LocaleChangeInterceptor"_>

    <propertyname=_"paramName"_value=_"siteLanguage"_/>

 </bean>

 <beanid=_"localeResolver"_class=_"org.springframework.web.servlet.i18n.SessionLocaleResolver"_/>

<beanclass=_"org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"_p:order=_"1"_>

     <propertyname=_"interceptors"_ref=_"localeChangeInterceptor"_/>

</bean>

<beanclass=_"org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"_p:order=_"2"_>

     <propertyname=_"interceptors"_ref=_"localeChangeInterceptor"_/>

   </bean>

说明:该文件配置了springmvc自带的动态国际化,可以去网站搜索相关更多的信息,下面配置js文件国际化,加载个过滤器

Web.xml文件

<filter>

        <filter-name>I18nFilter</filter-name>

        <filter-class>com.exam.filter.I18nFilter</filter-class>

    </filter>

    <filter-mapping>

        <filter-name>I18nFilter</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>解析说明:

com.exam.filter.I18nFilte类代码:

      package com.exam.util;

import java.io.IOException;

import java.io.InputStream;

import java.util.ArrayList;

import java.util.Enumeration;

import java.util.Properties;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import org.springframework.context.support.ResourceBundleMessageSource;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.i18n.SessionLocaleResolver;

import org.springframework.web.servlet.mvc.AbstractController;

public classI18n extendsAbstractController{

protected ModelAndView handleRequestInternal(HttpServletRequestarg0,HttpServletResponse arg1)throwsIOException, IllegalArgumentException, IllegalAccessException{

    Propertiesprop = newProperties();

    InputStreamin = getClass().getResourceAsStream("/message_en_US.properties");

    prop.load(in);

    ArrayListi18nList=newArrayList();

    Enumerationenu =(Enumeration)prop.propertyNames(); 

    while (enu.hasMoreElements()){

        Stringkey = enu.nextElement();

        i18nList.add(key);

    }

    HttpSessionsession =arg0.getSession();

    session.setAttribute("i18nList",i18nList);

    ModelAndViewmodel=newModelAndView();

    //model.addObject("i18nList",i18nList);

    return model;

}

}

header.jsp

前台使用

1.      jsp页面用jstl国际化标签输出:fmt:messagekey="system.site"/

2.      js文件:$(“# system.site”).val()

大家可以下载源代码,慢慢研究吧

点赞
收藏
评论区
推荐文章
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java环境变量的配置
  刚开始学java时,遇到的第一个坑必定是java环境变量的配置,我整理了一下,将如何配置环境变量分享给大家。  为什么要配环境变量?  java程序在运行的时候,本质上是通过命令行来运行的,我们编写的java程序,首先被编译为class文件,然后将此文件放在java虚拟机中去执行。怎样编译,怎样执行,jdk已经为我们写好了(实际上就是javac
Stella981 Stella981
3年前
NetBeans配置Spring
<beanid"obstacle1"class"C:\launchCodeFiles\src\main\java\RunMario.java"改为<beanid"obstacle1"class"RunMario"class路径为(包名类名)<?xmlversion"1.0"encoding
Wesley13 Wesley13
3年前
Java基础笔记(一)——JDK、JRE、JVM
JDK、JRE和JVM三者的关系Java程序执行过程JVM(javavirtualmachine)注:由于各种操作系统(windows、linux等)支持的指令集(二进制可执行代码)不同,程序代码在不同的操作系统上应该编写的也就应该不同。而Java中的.class字节码文件是种特殊的二进制文件,JVM认得它,可以将它翻
Stella981 Stella981
3年前
IOS APP 国际化 程序内切换语言实现 不重新启动系统(支持项目中stroyboard 、xib 混用。完美解决方案)
IOSAPP国际化程序内切换语言实现不重新启动系统(支持项目中stroyboard、xib混用。完美解决方案)参考文章:(1)IOSAPP国际化程序内切换语言实现不重新启动系统(支持项目中stroyboard、xib混用。完美解决方案)(https://www.oschina.net/action/GoToLink
Wesley13 Wesley13
3年前
Java 读取Properties文件时应注意的路径问题
1\.使用Class的getResourceAsStream()方法读取Properties文件(资源文件)的路径问题:      InputStreaminthis.getClass().getResourceAsStream("资源Name");    注意:    (1)这种方式要求Properties资源文件必须与当
Stella981 Stella981
3年前
Spring 手工装配对象
手工装配依赖对象,在这种方式中又有两种编程方式1\.在xml配置文件中,通过在bean节点下配置,如<beanid"orderDao"class"cn.itcast.service.OrderDao"/<beanid"orderService"class"cn.itcast.service.OrderServiceBea
Wesley13 Wesley13
3年前
spring+mybatis 根据业务场景访问不同数据库,读写分离
//配置文件<beanid"sqlSessionFactory1"class"org.mybatis.spring.SqlSessionFactoryBean"   <propertyname"dataSource"ref"DataSource1"/   <propertyname"configLocat
Stella981 Stella981
3年前
Android APK打包过程概述
1.用aapt命令生成R.java文件2.用aidl命令生成相应java文件3.用javac命令编译java源文件生成class文件4.用dx.bat将class文件转换成classes.dex文件5.用aapt命令生成资源包文件resources.ap\_6.用apkbuilder.bat打包资源和classes.dex文件,生成uns
Wesley13 Wesley13
3年前
Java ClassLoader 原理详细分析
一、什么是ClassLoader?大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要