• Struts框架的国际化


         本文将通过一个详细的实例来展示Struts框架的国际化,使用的版本号是struts1.1。

    案例:在一个页面上有一个下拉框,下拉框中有3个国家的语言选项,各自是“中文简体”、“繁体中文”、“英文”。

    使用者通过对这三个选项的改变,而实现3种语言的变化。效果例如以下:

      一、详细开发思想例如以下:

    1)通过一个Action来获得JSP页面下拉框的选择项,依据这些选项来动态改变保存在Session中的Locale对象;

    2)JSP页面的全部显示都会通过<bean:message>标签来读取资源配置文件,依据3种语言给出3个资源配置文件,资源配置文件的“键”不会改变,改变的是“值”。简体和繁体的“值”会使用UTF-8编码。

      二、 部分代码例如以下:

     a) 在Action中提供针对请求到来的Locale对象的动态变化,

    package struts.sample.cap4.sample1.action;
    
    import java.util.Locale;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.struts.Globals;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    
    import struts.sample.cap4.sample1.form.LanguageSelectForm;
    
    public class I18SelectAction extends Action {
    	public ActionForward execute(ActionMapping mapping, ActionForm actionForm,
    			HttpServletRequest request, HttpServletResponse response)
    			throws Exception {
    		LanguageSelectForm languageSelectForm = (LanguageSelectForm) actionForm;
    		Locale locale = null;
    		//依据页面的下拉选择得到Locale对象的内容
    		if (languageSelectForm.getLanguageSelect().equals("0")) {
    			locale = Locale.SIMPLIFIED_CHINESE;
    		}
    		if (languageSelectForm.getLanguageSelect().equals("1")) {
    			locale = Locale.US;
    		}
    		if (languageSelectForm.getLanguageSelect().equals("2")) {
    			locale = Locale.TRADITIONAL_CHINESE;
    		}
    		//将Locale对象的内容存放到Session中
    		request.getSession().setAttribute(Globals.LOCALE_KEY, locale);
    		return mapping.findForward("success");
    	}
    
    }


    b) 提供一个ActionForm

       该Action没有检验的方法。不过传递从页面到来的參数。

    package struts.sample.cap4.sample1.form;
    
    import org.apache.struts.action.ActionForm;
    
    public class LanguageSelectForm extends ActionForm {
    	//下拉框的value
    	String languageSelect;
    
    	public String getLanguageSelect() {
    		return languageSelect;
    	}
    
    	public void setLanguageSelect(String languageSelect) {
    		this.languageSelect = languageSelect;
    	}
    
    }
    


    c) JSP页面

        JSP页面的部分仅仅有一个下拉框和一些提示信息。

    <%@ page contentType="text/html; charset=UTF-8"%>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
    <html>
    	<head>
    	<title>selectlanguage</title>
    	<script language="javascript">
    	function selectsubmit() {
    	  if (document.all("languageSelect").value != "9999") {
    	  	document.langform.submit();
    	  } 
    	
    	}
    	</script>
    	</head>
    	<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    		<form name="langform" action="I18SelectAction.do" method="POST">
    			<table border="0" width="486" cellpadding="6">
    				<tr>
    					<td><bean:message key="form.languagefamily" /></td>
    					<td>
    						<select	name="languageSelect" onchange="selectsubmit();">
    							<option value="9999" selected="selected">
    								<bean:message key="form.language999" />
    							</optioon>
    							<option value="0">
    								<bean:message key="form.language0" />
    							</optioon>
    							<option value="1">
    								<bean:message key="form.language1" />
    							</optioon>
    							<option value="2">
    								<bean:message key="form.language2" />
    							</optioon>
    						</select>
    					</td>
    				</tr>
    			</table>
    		</form>
    	</body>
    </html>

    三、3个不同语言的资源配置文件

        三种不同语言的配置文件分别为application_en_US.properties、application_zh_CN.properties、application_zh_TW.properties,相应了英文、中文简体和繁体中文3种不同的显示。

     application_en_US.properties内容例如以下:

    form.language0=SIMPLIFIED_CHINESE
    form.language1=ENGLISH
    form.language2=TRADITIONAL_CHINESE
    form.language999=Please Choose your language
    form.languagefamily=Language


    application_zh_CN.properties的内容例如以下:

    </pre><pre class="java" name="code">form.language0=u7B80u4F53u4E2Du6587
    form.language1=u82F1u8BED
    form.language2=u7E41u4F53u4E2Du6587
    form.language999=u8BF7u9009u62E9u6240u9700u8BEDu8A00u7684u79CDu7C7B
    form.languagefamily=u8BEDu8A00
    

    application_zh_TW.properties的内容例如以下:

    form.language0=u7C21u9AD4u4E2Du6587
    form.language1=u82F1u8A9E
    form.language2=u7E41u9AD4u4E2Du6587
    form.language999=u8ACBu9078u64C7u6240u9700u8A9Eu8A00u7684u7A2Eu985E
    form.languagefamily=u8A9Eu8A00
    



    完整代码地址:http://download.csdn.net/detail/sanqima/7479141
     


     

  • 相关阅读:
    html <applet>元素属性介绍
    C#内存释放(转)
    mongodb for linux (安装)
    WCF客户端搭建(通过自定义WCF Client封装) wu
    SQL常用语句 wu
    任务调度平台 wu
    将DataSet 纵向显示数据
    关于OP和SI项目的记录点,防止遗忘难以查找
    java进阶
    git代码量统计
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/6755895.html
Copyright © 2020-2023  润新知