java系统国际化的配置

首先写好资源文件:

message_en_US.properties

等等

  1. springmvc -servlet.xml文件
  2. <!-- 国际化操作 拦截器  -->
  3.  <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
  4. <property name="basename" value="message"/>
  5. <property name="useCodeAsDefaultMessage" value="true"/>
  6. </bean>
  7. <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
  8.      <property name="paramName" value="siteLanguage" />

10. </bean>

11.

12. <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

  1. 13.  

14. <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" p:order="1">

  1. 15.      <property name="interceptors" ref="localeChangeInterceptor" />

16. </bean>

17. <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" p:order="2">

  1. 18.      <property name="interceptors" ref="localeChangeInterceptor" />
  2.     </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 class I18n extends AbstractController{

protected ModelAndView handleRequestInternal(HttpServletRequest arg0,HttpServletResponse arg1)throws IOException, IllegalArgumentException, IllegalAccessException{

    Properties prop = new Properties();

    InputStream in = getClass().getResourceAsStream("/message_en_US.properties");

    prop.load(in);

 

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

 

    Enumeration<String> enu = (Enumeration<String>) prop.propertyNames()

    while (enu.hasMoreElements()) {

        String key = enu.nextElement();

        i18nList.add(key);

    }

    HttpSession session =arg0.getSession();

    session.setAttribute("i18nList", i18nList);

 

   

 

    ModelAndView model=new ModelAndView();

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

    return model;

 

 

}

}

前台使用

  1. jsp页面用jstl国际化标签输出:<fmt:message key="system.site"/>
  2. js文件:$(“# system.site”).val()

需要完整的代码,大家去下载MyExam源码

posted @ 2013-08-28 16:17  eric2013  阅读(755)  评论(0)    收藏  举报