<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ☆藍(lán)色夢想☆

    世界總是反反覆覆錯錯落落地飄去 來不及嘆息 生活不是平平淡淡從從容容的東西 不能放棄
    posts - 57, comments - 5, trackbacks - 0, articles - 0

    關(guān)于struts國際化的一點嘗試

    Posted on 2006-02-27 14:51 ☆藍(lán)色夢想☆ 閱讀(327) 評論(0)  編輯  收藏 所屬分類: Struct

    1、修改web.xml文件,內(nèi)容如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "<web-app>
        <servlet>
            <servlet-name>action</servlet-name>
            <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
            <init-param>
                <param-name>config</param-name>
                <param-value>/WEB-INF/struts-config.xml</param-value>
            </init-param>
            <init-param>
               <param-name>application</param-name>
               <param-value>com.sharp.struts.ApplicationResources</param-value>
             </init-param>

            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>action</servlet-name>
            <url-pattern>*.do</url-pattern>
        </servlet-mapping>
    </web-app>

    文件中灰色背景部分為國際化需要增加的內(nèi)容,其中com.sharp.struts.ApplicationResources跟你的WEB-INF目錄下classes下的目錄結(jié)構(gòu)是一致的,如下圖所示
    web-xml.jpg

    2、建立資源文件ApplicationResources.source(中文源文件,而不是中文資源文件)、ApplicationResources_en.properties(英文資源文件)。
    首先建立ApplicationResources_en.properties文件,內(nèi)容如下:
    owner.greet=Greet
    owner.name=Name
    owner.address=Address
    owner.email=Email
    owner.tel=Tel

    對應(yīng)的中文源文件內(nèi)容如下:
    owner.greet=稱呼
    owner.name=姓名
    owner.address=地址
    owner.email=電子郵件
    owner.tel=聯(lián)系電話

    然后通過在cmd中執(zhí)行native2ascii -encoding GBK ApplicationResources.source .\ApplicationResources_zh_CN.properties
    命令將中文源文件生成UTF-8格式的中文資源文件,內(nèi)容如下
    owner.greet=\u79f0\u547c
    owner.name=\u59d3\u540d
    owner.address=\u5730\u5740
    owner.email=\u7535\u5b50\u90ae\u4ef6
    owner.tel=\u8054\u7cfb\u7535\u8bdd
    這里介紹一下,native2ascii是JDK包自帶的一個工具,如果你不能cmd直接執(zhí)行native2ascii命令,請檢查你的環(huán)境變量,這里不具體介紹了。

    3、接著來介紹一下struts-config.xml文件的內(nèi)容,如果熟悉struts的朋友也覺得很簡單的
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "
    <struts-config>
        <!-- ========== Form Bean Definitions ================================== -->
        <form-beans>
            <form-bean name="ownerForm" type="com.sharp.struts.form.OwnerForm">
                <form-property name="Email" type="java.lang.String" />
                <form-property name="Greet" type="java.lang.String" initial="Mr." />
                <form-property name="Address" type="java.lang.String" />
                <form-property name="Tel" type="java.lang.Integer" initial="0" />
                <form-property name="Name" type="java.lang.String" />
            </form-bean>
           
        </form-beans>
       
        <!-- ========== Global Exception Definitions ============================== -->
        <global-exceptions />
       
        <!-- ========== Global Forward Definitions =============================== -->
        <global-forwards>
            <forward name="failure" path="/failure.jsp" />
           
        </global-forwards>
       
        <!-- ========== Action Mapping Definitions =============================== -->
        <action-mappings>
            <action
                attribute="ownerForm"
                input="/owner.jsp"
                name="ownerForm"
                path="/owner"
                type="com.sharp.struts.action.OwnerAction"
                parameter="formAction"><!--因為action類繼承DispatchAction類,所以需要設(shè)置這個屬性-->
                <forward name="owner"   path="/owner.jsp" />
                <forward name="success" path="/success.jsp" />
            </action>

           
        </action-mappings>
       
    </struts-config>

    4、現(xiàn)在就開始準(zhǔn)備java和jsp文件吧
    owner.jsp文件內(nèi)容如下:
    <%@ page contentType="text/html;charset=gb2312" %>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
    <html:html locale="true">
     <head>
      <meta name = "Generator" content = "Easy Struts Xslt generator for Eclipse (
      <title>Struts Form for ownerForm</title>
      <script language="javascript">
          function changeLanguage(language) {
              if(language == "en") {
                  document.all("language").value = "en";
              } else {
                  document.all("language").value = "cn";
              }
              document.forms[0].submit();
          }
      </script>
     </head>
     <body>
      <html:form action="/owner">
      <input type="hidden" name="formAction" value="changeLanguage">
      <input type="hidden" name="language">

       <bean:message key="owner.greet" /> : <html:select property="greet">
          <html:option value=""></html:option>
          <html:option value="Mr.">Mr.</html:option>
          <html:option value="Miss.">Miss.</html:option>
          <html:option value="Mrs.">Mrs.</html:option>
         </html:select><html:errors property="greet"/></br>   
       <bean:message key="owner.name" /> : <html:text property="name"/><html:errors property="name"/></br>
       <bean:message key="owner.address" /> : <html:text property="address"/><html:errors property="address"/></br>
       <bean:message key="owner.email" /> : <html:text property="email"/><html:errors property="email"/></br>
       <bean:message key="owner.tel" /> : <html:text property="tel"/><html:errors property="tel"/></br>
       <html:submit/>
       <html:cancel/>
       <input type="button" name="langEn" value="英文版" onclick="changeLanguage('en')">   
       <input type="button" name="langCn" value="中文版" onclick="changeLanguage('cn')">
      </html:form>
     <body>
    </html:html>

    OwnerAction.java文件內(nèi)容如下:
    // Created by Xslt generator for Eclipse.
    // XSL :  not found (java.io.FileNotFoundException:  (Bad file descriptor))
    // Default XSL used : easystruts.jar$org.easystruts.xslgen.JavaClass.xsl

    package com.sharp.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 org.apache.struts.actions.DispatchAction;

    import com.sharp.struts.form.OwnerForm;

    /**
     * OwnerAction.java created by EasyStruts - XsltGen.
     *
    http://easystruts.sf.net
     * created on 10-09-2004
     *
     * XDoclet definition:
     * @struts:action path="/owner" name="ownerForm" input="/owner.jsp" validate="true"
     * @struts:action-forward name="/success.jsp" path="/success.jsp"
     */
    public class OwnerAction extends DispatchAction {

     
     public ActionForward changeLanguage(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) {

       String language = request.getParameter("language");   
       if (language.equals("en")) {
            request.getSession().setAttribute(Globals.LOCALE_KEY, Locale.ENGLISH);    
       } else {    
            request.getSession().setAttribute(Globals.LOCALE_KEY, Locale.CHINESE);
       }
       
            return mapping.findForward("owner");
        }
    }
    這里需要注意一下,千萬不要弄錯,我在這里就花費(fèi)了一個多小時,因為把文件名寫錯了
    Locale.ENGLISH是一個Locale對象,getLanguage()方法返回en,跟資源文件(ApplicationResources_en.properties)的后綴相同
    Locale.CHINESE是一個Locale對象,getLanguage()方法返回zh,跟資源文件(ApplicationResources_zh_CN.properties)的后綴相同


    另外還用到一個ownerForm.java文件,內(nèi)容如下:
    // Created by Xslt generator for Eclipse.
    // XSL :  not found (java.io.FileNotFoundException:  (Bad file descriptor))
    // Default XSL used : easystruts.jar$org.easystruts.xslgen.JavaClass.xsl

    package com.sharp.struts.form;

    import javax.servlet.http.HttpServletRequest;

    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;

    /**
     * OwnerForm.java created by EasyStruts - XsltGen.
     * http://easystruts.sf.net
     * created on 10-09-2004
     *
     * XDoclet definition:
     * @struts:form name="ownerForm"
     */
    public class OwnerForm extends ActionForm {

     // --------------------------------------------------------- Instance Variables

     /** Email property */
     private String email;

     /** Greet property */
     private String greet = "Mr.";

     /** Address property */
     private String address;

     /** Tel property */
     private int tel = 0;

     /** Name property */
     private String name;
     // --------------------------------------------------------- Methods
    ......
    //getter,setter mothod,這里不贅列了

    }

    5、總結(jié)
    這樣一個國際化的小例子就可以運(yùn)行了,不過上面寫得比較粗略,需要對java和struts有一定了解。
    網(wǎng)上對國際化也有其他的做法,也可以參考。
    如果上述有所偏頗,敬請斧正。

    主站蜘蛛池模板: 日本高清免费中文字幕不卡| 久久夜色精品国产亚洲| 亚洲成a人片在线观看播放| 91视频免费观看| 亚洲毛片αv无线播放一区| 激情内射亚洲一区二区三区| 亚洲AV无码一区二区三区牛牛| 人人鲁免费播放视频人人香蕉| 国产日产成人免费视频在线观看| 亚洲日韩乱码中文字幕| 人妻在线日韩免费视频| 在线观看免费污视频| 亚洲老妈激情一区二区三区| 精品国产免费人成网站| 国产成人免费高清激情视频| 国产亚洲精品自在久久| 日本一区二区免费看| 亚洲精品456在线播放| 人体大胆做受免费视频| 亚洲国产一成人久久精品| 久久爰www免费人成| 亚洲乱码日产精品BD在线观看| 久久久久久国产精品免费免费| 亚洲AV无码专区在线观看成人 | 日本一区免费电影| 色婷婷亚洲一区二区三区| 区三区激情福利综合中文字幕在线一区亚洲视频1| 亚洲AV无码一区东京热| 特级毛片全部免费播放a一级| 一本色道久久综合亚洲精品高清| 亚洲日韩一区二区一无码| 亚洲成年看片在线观看| 可以免费观看的国产视频| 亚洲精品无码激情AV| 久久精品视频免费播放| 亚洲av无码专区青青草原| 亚洲愉拍99热成人精品热久久| 91精品全国免费观看含羞草| 精品亚洲永久免费精品| 一个人看的www在线观看免费| 亚洲香蕉久久一区二区|