Struts框架的国际化
来源:互联网 发布:人类男捏脸具体数据 编辑:程序博客网 时间:2024/05/21 17:02
本文将通过一个具体的实例来展示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 {//下拉框的valueString 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><selectname="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_CHINESEform.language1=ENGLISHform.language2=TRADITIONAL_CHINESEform.language999=Please Choose your languageform.languagefamily=Language
application_zh_CN.properties的内容如下:
</pre><pre class="java" name="code">form.language0=\u7B80\u4F53\u4E2D\u6587form.language1=\u82F1\u8BEDform.language2=\u7E41\u4F53\u4E2D\u6587form.language999=\u8BF7\u9009\u62E9\u6240\u9700\u8BED\u8A00\u7684\u79CD\u7C7Bform.languagefamily=\u8BED\u8A00
application_zh_TW.properties的内容如下:
form.language0=\u7C21\u9AD4\u4E2D\u6587form.language1=\u82F1\u8A9Eform.language2=\u7E41\u9AD4\u4E2D\u6587form.language999=\u8ACB\u9078\u64C7\u6240\u9700\u8A9E\u8A00\u7684\u7A2E\u985Eform.languagefamily=\u8A9E\u8A00
完整代码地址:http://download.csdn.net/detail/sanqima/7479141
- Struts框架的国际化
- Struts的框架的国际化
- SSH框架之Struts的国际化
- 使用Struts框架实现国际化
- struts的国际化问题
- struts国际化的实现
- struts应用的国际化
- Struts应用的国际化
- struts的国际化
- Struts应用的国际化
- Struts的国际化示例
- Struts应用的国际化
- Struts 国际化的问题
- Struts应用的国际化
- Struts应用的国际化
- Struts国际化的方式
- struts 的国际化实现
- Struts应用的国际化
- Spring集成Quartz定时任务框架介绍和Cron表达式详解
- Hibernate做开发时遇到的一些问题
- acdreamoj1117The Arrow 概率dp
- 手势总结
- mfc dll创建及基本概念
- Struts框架的国际化
- 黑马程序员_代理技术(动态代理和静态代理)
- 静态链接库和动态链接库
- SendMessage
- 前端基础二
- android之WebView及与js的交互
- 同步
- Opencv学习总结1-背景建模
- ARIS 中的概念和表达法