從制造到創造
          軟件工程師成長之路
          posts - 292,  comments - 96,  trackbacks - 0
          效果:


          文件清單:
          序號 文件名
          1 ChangeLocaleAction.java
          2 ChangeLocaleForm.java
          3 struts-config.xml
          4 index.jsp
          5 application_en_US.properties
          6 application_zh_CN.properties
          7 application_zh_TW.properties

          清單1:
          package com.coderdream.struts.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 com.coderdream.struts.form.ChangeLocaleForm;

          public class ChangeLocaleAction extends Action {

              
          public ActionForward execute(ActionMapping mapping, ActionForm form,
                      HttpServletRequest request, HttpServletResponse response) {
                  ChangeLocaleForm clForm 
          = (ChangeLocaleForm)form;
                  String language 
          = clForm.getLanguage();
                  
          if (language != null) {
                      Locale locale;
                      
          if (language.equalsIgnoreCase("en")) {
                          locale 
          = Locale.US;
                          request.getSession().setAttribute(
                                  Globals.LOCALE_KEY, locale);
                      } 
          else if (language.equalsIgnoreCase("tw")) {
                          locale 
          = Locale.TAIWAN;
                          request.getSession().setAttribute(
                                  Globals.LOCALE_KEY, locale);
                      } 
          else {
                          locale 
          = Locale.CHINA;
                          request.getSession().setAttribute(
                                  Globals.LOCALE_KEY, locale);
                      }
                  }
                  
                  
          return mapping.findForward("success");
              }
                   
          }

          清單2:
          package com.coderdream.struts.form;

          import org.apache.struts.action.ActionForm;


          /**
           * 
           * description:
           * 
           * 
          @author 
           *
           
          */
          public class ChangeLocaleForm extends ActionForm{
              
              
          public ChangeLocaleForm() {
                  
          super();
              }

              
          private String language;

              
          public String getLanguage() {
                  
          return language;
              }

              
          public void setLanguage(String language) {
                  
          this.language = language;
              }
          }

          清單3:
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

          <struts-config>
              
          <data-sources />
              
          <form-beans>
                  
          <form-bean name="ChangeLocaleForm"
                      type
          ="com.coderdream.struts.form.ChangeLocaleForm" />
              
          </form-beans>

              
          <action-mappings>

                  
          <action name="ChangeLocaleForm" path="/ChangeLocale"
                      scope
          ="request"
                      type
          ="com.coderdream.struts.action.ChangeLocaleAction"
                      validate
          ="false">
                      
          <forward name="success" path="/index.jsp" />
                  
          </action>
              
          </action-mappings>

              
          <message-resources key="application"
                  parameter
          ="com.coderdream.struts.resources.application" />
          </struts-config>

          清單4:
          <%@ page contentType="text/html; charset=UTF-8"%>
          <%@page import="org.apache.struts.Globals"%>
          <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
          <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
          <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>

          <html:html>
          <head>
              
          <title>多語言測試</title>
              
          <meta http-equiv="pragma" content="no-cache">
              
          <meta http-equiv="cache-control" content="no-cache">
              
          <meta http-equiv="expires" content="0">
              
          <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
              
          <meta http-equiv="description" content="This is my page">
          </head>
          <script language="javascript"> 
              function onLanguage(){
                  var language 
          = document.getElementsByName("language")[0].value;
                  
          if(language!=null&&language!=""){         
                    document.forms[
          0].submit();
                      }
                    }   
              
          </script>

          <body>
              
          <html:form action="ChangeLocale.do">
                  
          <html:select property="language" styleId="height:18"
                      onchange
          ="onLanguage();">
                      
          <option value="" title="">
                          
          --
                          
          <bean:message bundle="application" key="global.select.language" />
                          
          --
                      
          </option>
                      
          <option value="en" title="English">
                          English
                      
          </option>
                      
          <option value="cn" title="簡體中文">
                          簡體中文
                      
          </option>
                      
          <option value="tw" title="繁體中文">
                          繁體中文
                      
          </option>
                  
          </html:select>
              
          </html:form>
              
          <br>
              
          <br>
              
          <br>
              
          <bean:message bundle="application" key="global.select.test" />
              
          <%=request.getSession().getAttribute(Globals.LOCALE_KEY)%>

          </body>
          </html:html>

          清單5:
          #Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)

          global.select.language 
          = Language
          global.select.test     
          = Test

          清單6:
          #Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
          #BizException

          global.select.language = \u8BED\u8A00
          global.select.test     = \u6D4B\u8BD5

          清單7:
          #Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)

          global.select.language = \u8A9E\u8A00
          global.select.test     = \u6E2C\u8A66

          此功能的關鍵是在Action里面將頁面傳過來的language信息得到,然后根據信息設置Locale,然后將新的Locale放到Session中。

          源代碼:點擊下載
          posted on 2008-05-14 18:20 CoderDream 閱讀(1019) 評論(0)  編輯  收藏 所屬分類: 經驗點滴

          <2008年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(9)

          我參與的團隊

          隨筆分類(245)

          隨筆檔案(239)

          文章分類(3)

          文章檔案(3)

          收藏夾(576)

          友情鏈接

          搜索

          •  

          積分與排名

          • 積分 - 458389
          • 排名 - 114

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 从江县| 台前县| 双辽市| 西吉县| 土默特右旗| 井研县| 贞丰县| 公安县| 浦江县| 宁波市| 休宁县| 彭水| 龙川县| 句容市| 府谷县| 安庆市| 康乐县| 通州市| 麻栗坡县| 会理县| 丰镇市| 宁阳县| 志丹县| 黑河市| 日照市| 洱源县| 敦煌市| 徐水县| 湖州市| 方正县| 莆田市| 昆山市| 诸城市| 滁州市| 高平市| 尚义县| 绿春县| 冷水江市| 金乡县| 嘉定区| 岑巩县|