SpringMVC国际化

SpringMVC国际化

目录:

1、SpringMVC国际化流程:

2、localeResolver作用:

3、基于session的国际化实现:

4、测试源代码:

5、SpringMVC配置文件:


1、SpringMVC国际化流程:

答:(1)在SpringMVC配置文件application-mvc.xml下配置资源绑定:
class="org.springframework.context.support.ResourceBundleMessageSource">





(2)将messages文件放到classpath中。
(3)页面中引入spring标签:<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> 

arguments是用来给资源文件添加参数的,
argumentSeparator是用来分割多个参数的标记
默认是基于浏览器请求的国际化实现

2、localeResolver作用:
答:在SpringMVC中,用户的区域是通过区域解析器来识别的,它必须实现LocaleResolver接口,SpringMVC提供了几个LocaleResolver实现,使得可以按照不同的条件来解析。

要定义一个区域解析器,只需在web应用程序上下文中注册一个LocaleResolver类型的Bean就可以了。首先必须将区域解析器的Bean名称设置为localeResolver,这样DispatcherServlet才能自动侦测到它。注意,每个DispatcherServlet只能注册一个区域解析器。


3、基于session的国际化实现:
答:在SpringMVC的配置文件中加入如下代码:


   








/login.action
/toRegister.action
/doregister.action
/checklogin.action
/lang.action





class="org.springframework.web.servlet.i18n.SessionLocaleResolver">


从页面传入参数,在action中改变编码
Locale locale = new Locale("zh", "CN");
request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale);

4、测试源代码:
答:说明:本示例代码是建立在上一篇《SpringMVC文件上传、数据校验》的基础上的,只展示增加代码。
(1)控制层UserAction.java添加如下方法:
@RequestMapping(value="/lang.action", method=RequestMethod.GET)
public String LoginLang(String locale,HttpSession session){
Locale lo = null;
if("zh".equals(locale)){
lo = new Locale("zh", "CN");
}else{
lo = new Locale("en", "US");
}
session.setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, lo);
return "user/login";
}
(2)加入两个配置文件messages_en_US.properties和messages_en_CN.properties

SpringMVC国际化_第1张图片

图4.1 messages_en_US.properties文件内容

SpringMVC国际化_第2张图片

图4.2 messages_en_CN.properties文件内容

(3)测试页面login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"  %>



	
	
	
	
	
	<spring:message code="userLogin"></spring:message>
	


	

${msg }

(4)运行结果截图:
①中文、英文切换按钮:
图4.3 中文、英文切换按钮
②中文页面:
SpringMVC国际化_第3张图片
图4.4 中文页面
③英文页面:
SpringMVC国际化_第4张图片
图4.5 英文页面

5、SpringMVC配置文件:


	
	
		
	

	
	
		
			
				
					
						text/html;charset=UTF-8
						application/json;charset=UTF-8
					
				
				
				
					
						
							
								
							
						
					
				
			
		
	
	
	
	
		
		
		
	
	
	
		
		
		
	
	
	
		
		
		
		
		
	
	
	
		
			/error/500
		
		
			500
		
		
		
			org.springframework.web.servlet.handler.SimpleMappingExceptionResolver
			
		
	
	
		
		
		
		
		
		
			
			
				
					
						/login.action
						/toRegister.action
						/doregister.action
						/checklogin.action
						/lang.action
					
				
			
		
	
	
		
		
		
		
	

	
		
	


你可能感兴趣的:(Java,Web,spring,mvc,国际化,session,源代码,测试)