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