日期:2014-05-17 浏览次数:20700 次
<%@ page language="java" contentType="text/html; charset=utf-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <script type="text/javascript"> function langSelecter_onChanged() { document.getElementById("langForm").submit(); } </script> <!-- 将用户Session中的“WW_TRANS_I18N_LOCALE”属性值设置成SESSION_LOCALE。 --> <s:set name="SESSION_LOCALE" value="#session['WW_TRANS_I18N_LOCALE']"/> <!-- 使用lee.Locales创建locales实例 --> <s:bean id="locales" name="lee.Locales"> <!-- 为locales实例这种current参数值 --> <s:param name="current" value="#SESSION_LOCALE == null ? locale : #SESSION_LOCALE"/> </s:bean> <!-- 让用户选择语言的表单 --> <form action="<s:url/>" id="langForm" style="background-color:#bbbbbb; padding-top: 4px; padding-bottom: 4px;"> <!-- 输出国际化提示 --> <s:text name="languag"/> <!-- 使用s:select标签迭代locales实例的locales Map属性 --> <s:select label="Language" list="#locales.locales" listKey="value" listValue="key" value="#SESSION_LOCALE == null ? locale : #SESSION_LOCALE" name="request_locale" id="langSelecter" onchange="langSelecter_onChanged()" theme="simple"/> </form>
package lee; public class Locales { //因为本实例也需要实现国际化,所以使用current作为用户当前的Locale private Locale current; //取得用户当前Locale的setter方法 public void setCurrent(Locale cur) { this.current = cur; } //取得本系统所支持的全部语言 public Map<String, Locale> getLocales() { //将当前系统支持的全部语言保持在Map对象中 Map<String, Locale> locales = new Hashtable<String, Locale>(); ResourceBundle bundle = ResourceBundle.getBundle("messageResource" , current); //添加当前系统支持的语言,key是系统支持语言的显示名字,value是系统支持语言的Locale实例 locales.put(bundle.getString("usen"), Locale.US); locales.put(bundle.getString("zhcn"), Locale.CHINA); return locales; } }