java系统国际化的配置

本代码来源于开源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);

    ArrayList<String>i18nList=newArrayList<String>();

    Enumeration<String>enu =(Enumeration<String>)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

<div style="display:none" id="i18nDiv"> <c:forEach var="i18n" items="${i18n}" varStatus="step"> <input id="${i18n}" name="${i18n}" value="<fmt:message key="${i18n}"/>"/> </c:forEach> </div>

前台使用

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

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

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

点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java环境变量的配置

  刚开始学java时,遇到的第一个坑必定是java环境变量的配置,我整理了一下,将如何配置环境变量分享给大家。  为什么要配环境变量?  java程序在运行的时候,本质上是通过命令行来运行的,我们编写的java程序,首先被编译为class文件,然后将此文件放在java虚拟机中去执行。怎样编译,怎样执行,jdk已经为我们写好了(实际上就是javac

NetBeans配置Spring

<beanid"obstacle1"class"C:\launchCodeFiles\src\main\java\RunMario.java"改为<beanid"obstacle1"class"RunMario"class路径为(包名类名)<?xmlversion"1.0"encoding

Java基础笔记(一)——JDK、JRE、JVM

JDK、JRE和JVM三者的关系Java程序执行过程JVM(javavirtualmachine)注:由于各种操作系统(windows、linux等)支持的指令集(二进制可执行代码)不同,程序代码在不同的操作系统上应该编写的也就应该不同。而Java中的.class字节码文件是种特殊的二进制文件,JVM认得它,可以将它翻

Java 读取Properties文件时应注意的路径问题

1\.使用Class的getResourceAsStream()方法读取Properties文件(资源文件)的路径问题:      InputStreaminthis.getClass().getResourceAsStream("资源Name");    注意:    (1)这种方式要求Properties资源文件必须与当

java系统国际化的配置 - HelloWorld