Struts2实现国际化简单示例

阅读更多

开发国际化的应用程序时,有一个功能是必不可少的——让用户快捷地选择或切换语言。在Struts 2.0中,通过ActionContext.getContext().setLocale(Locale arg)可以设置用户的默认语言。不过,由于这是一个比较普遍的应用场景(Scenario),所以Struts 2.0为您提供了一个名i18n的拦截器(Interceptor),并在默认情况下将其注册到拦截器链(Interceptor chain)中。它的原理为在执行Action方法前,i18n拦截器查找请求中的一个名为"request_locale"的参数。如果其存在,拦截器就将其作为参数实例化Locale对象,并将其设为用户默认的区域(Locale),最后,将此Locale对象保存在session的名为“WW_TRANS_I18N_LOCALE”的属性中。

下面开始简单的演示一下:

Locales类,后续待用JavaBean

package jp.co.ricoh.action.i18n;

import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

public class Locales {
	public Map getLocales(){
		Map locales = new HashMap();
		locales.put("American English", Locale.US);
		locales.put("Simplified Chinese", Locale.CHINA);
		return locales;
	}
}















 

 

在struts.xml中添加


    /i18n/i18n.jsp
   

 

下面i18n.jsp的内容:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>





Internationalization


	
	
	
Language:

 

在浏览器中敲入:

http://localhost:8080/ricoh/i18n/i18n.jsp

 

选择“American English”

-------------------------------------------------------------------------

package jp.co.ricoh.action.i18n;

import com.opensymphony.xwork2.ActionSupport;

public class I18nAction extends ActionSupport {
	/**
	 * 
	 */
	private static final long serialVersionUID = -6713811430767941801L;

	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		return super.execute();
	}
}

 

你可能感兴趣的:(Struts2实现国际化简单示例)