您的位置:首页 > 编程语言 > Java开发

基于SpringMVC国际化资源配置方式Demo

2016-11-12 15:30 525 查看
一.项目结构:




二.操作步骤:

在springmvc.xml配置如下内容

1.配置拦截器

<!-- 本地化变更拦截器 -->
<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
<mvc:interceptors>
<!-- 国际化资源切换时,根据请求参数中的locale参数自动切换 -->
<mvc:interceptor>
<mvc:mapping path="/**" />
<ref bean="localeChangeInterceptor" />
</mvc:interceptor>
</mvc:interceptors>

2.配置解析方式

如果是需要在界面上进行切换的话选用Session方式,如果要是浏览器自适应语言的话可以选用cookies方式。

<!-- 浏览器自适应语言方式(cookie方式) -->
<!-- <bean id="cookieLocaleResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" /> -->

<!-- 需要在界面上进行切换(session方式) -->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
<!-- 会话属性不存在,默认属性设置 -->
<property name="defaultLocale" value="zh_CN" />
</bean>
3.配置资源文件读取
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="message" />
<property name="useCodeAsDefaultMessage" value="true" />
</bean>

4.将message_en_US.properties和message_zh_CN.properties放到项目的类路径下。

三.示例演示:

springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
<context:component-scan base-package="com.dqiang"></context:component-scan>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/views/" p:suffix=".jsp"></bean>

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename" value="message" /> <property name="useCodeAsDefaultMessage" value="true" /> </bean>

<!-- 本地化变更拦截器 --> <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />

<!-- 浏览器自适应语言方式(cookie方式) --> <!-- <bean id="cookieLocaleResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" /> --> <!-- 需要在界面上进行切换(session方式) --> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"> <!-- 会话属性不存在,默认属性设置 --> <property name="defaultLocale" value="zh_CN" /> </bean>

<mvc:interceptors> <!-- 国际化资源切换时,根据请求参数中的locale参数自动切换 --> <mvc:interceptor> <mvc:mapping path="/**" /> <ref bean="localeChangeInterceptor" /> </mvc:interceptor> </mvc:interceptors></beans>


web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>springmvc4</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>


Index.java

package com.dqiang;

import java.util.Locale;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class Index {

@Autowired
private ResourceBundleMessageSource messagesource;

@RequestMapping("/index")
public String goIndex(){
return "index";
}

@RequestMapping("/lang")
public String goSuccess(Locale locale){
String val=messagesource.getMessage("username", null,locale);
System.out.println("==="+val+"====>"+locale.getLanguage());
return "success";
}
}


message_en_US.properties

username=username1
password=password


message_zh_CN.properties

username=\u7528\u6237\u540D
password=\u5BC6\u7801


index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here2</title>
</head>
<body>
<a href="lang?locale=en_US">en</a><br/>
<a href="lang?locale=zh_CN">zh</a><br/>
</body>
</html>


success.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
success.jsp
</body>
</html>

Demo下载:点击下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  springmvc