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

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

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

    WebWork2.2新特性(四):使用國(guó)際化攔截器


    其實(shí)這個(gè)I18nInterceptor很簡(jiǎn)單,而且實(shí)際應(yīng)用中根據(jù)實(shí)際需求需要進(jìn)行變通,所以這個(gè)I18nInterceptor并不是很實(shí)用,當(dāng)然還是提供了一定的參考作用的.

    首先我們來(lái)看一下如何使用這個(gè)攔截器.

    首先我們需要有一個(gè)Action,為了演示,其實(shí)最簡(jiǎn)單的Action就可以,例如

    public class I18nIcAction extends ActionSupport

    public String execute()
    {
    return SUCCESS;
    }

    展示的頁(yè)面例子如下:

    <%@ page contentType="text/html; charset=UTF-8" %>
    <%@ taglib uri="webwork" prefix="ww" %>
    <html>
    <head>
    <title>Test I18n Interceptor</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    </head>

    <body>
    Choose: <a href="?locale=en">English Page</a> ,
    <a href="?locale=zh_CN">Chinese Page</a>
    <br><br>
    Content:<ww:text name="desc"/>
    </body>
    </html> 


    其中我們使用"locale"作為locale的參數(shù)名,頁(yè)面里面有2個(gè)選項(xiàng):英文和中文.

    對(duì)應(yīng)的資源文件有2個(gè)(或者3個(gè),如果包括缺省一個(gè)的話):

    英文的I18nIcAction_en.properties內(nèi)容為:
    desc=english

    中文的I18nIcAction_zh_CN.properties內(nèi)容為:
    desc=\u7b80\u4f53\u4e2d\u6587

    接下來(lái)我們在xwork.xml里面定義我們的action和攔截器:

    <package name="i18nic" extends="webwork-default" namespace="/i18nic">
    <interceptors>
    <interceptor name="i18n" class="com.opensymphony.xwork.interceptor.I18nInterceptor">
    <param name="parameterName">locale</param>
    <param name="attributeName">ww_locale</param>
    </interceptor>

    <interceptor-stack name="i18nStack">
    <interceptor-ref name="i18n"/>
    <interceptor-ref name="defaultStack"/>
    </interceptor-stack>
    </interceptors>

    <default-interceptor-ref name="i18nStack"/>

    <action name="index" class="com.jscud.ww2test.i18nic.I18nIcAction">
    <result name="success" type="dispatcher">
    <param name="location">/i18nic/index.jsp</param>
    </result>
    </action>
    </package> 

    所有的工作都好了,發(fā)布并運(yùn)行訪問(wèn) /i18nic/index.action,一切和預(yù)想的一樣.


    通過(guò)查看I18nInterceptor的源碼,我們可以看到這個(gè)攔截器的工作原理是這樣的:

    1. 如果參數(shù)中指定了locale,那么攔截器分析參數(shù),并把locale保存到session中.
    2. 在后面的action中,攔截器從session中獲取這個(gè)locale,并設(shè)置action的locale,從而保持用戶(hù)的設(shè)置.
    3. 在后續(xù)頁(yè)面還可以繼續(xù)切換locale.

    從源碼分析結(jié)果來(lái)看,這樣做也會(huì)有一些實(shí)際的問(wèn)題:

    • session過(guò)期后,用戶(hù)不知道發(fā)生了什么,系統(tǒng)使用缺省的locale.
    • 只能影響通過(guò)action操作的頁(yè)面

    在實(shí)際使用中,我們也要考慮如何解決后面2個(gè)問(wèn)題,例如通過(guò)cookie,或者把用戶(hù)的配置保存在數(shù)據(jù)庫(kù)里等,這些實(shí)現(xiàn)就要結(jié)合實(shí)際代碼進(jìn)行實(shí)現(xiàn)了,完全可以不需要這個(gè)I18nInterceptor就可以實(shí)現(xiàn),當(dāng)然也很簡(jiǎn)單.

    各取所需,看自己的實(shí)際需要吧 :)


    除經(jīng)特別注明外,本文章版權(quán)歸JScud Develop團(tuán)隊(duì)或其原作者所有.
    轉(zhuǎn)載請(qǐng)注明作者和來(lái)源. scud(飛云小俠) 歡迎訪問(wèn) JScud Develop

     

    posted on 2005-08-31 15:46 Scud(飛云小俠) 閱讀(3302) 評(píng)論(10)  編輯  收藏 所屬分類(lèi): WEB

    評(píng)論

    # re: WebWork2.2新特性(四):使用國(guó)際化攔截器 2005-08-31 16:07 dudu

    你的幾篇文章都影響了首頁(yè)的顯示, 請(qǐng)調(diào)整好格式再發(fā)布。  回復(fù)  更多評(píng)論   

    # re: WebWork2.2新特性(四):使用國(guó)際化攔截器 2005-08-31 16:31 scud

    ... 可是我編輯的時(shí)候已經(jīng)我瀏覽的時(shí)候都是對(duì)的,就是blogjava首頁(yè)不對(duì)...看源碼也看不出原因啊  回復(fù)  更多評(píng)論   

    # re: WebWork2.2新特性(四):使用國(guó)際化攔截器 2005-08-31 20:32 dudu

    現(xiàn)在好了。  回復(fù)  更多評(píng)論   

    # re: WebWork2.2新特性(四):使用國(guó)際化攔截器 2005-11-16 11:41 Sue

    hi,我根據(jù)你說(shuō)的方法做了,可是,有這樣的錯(cuò)誤信息:
    嚴(yán)重: Could not execute action
    java.lang.IllegalStateException: Cannot find message associated with key parameterMap.locked
    at org.apache.catalina.util.ParameterMap.remove(ParameterMap.java:204)
    at com.bcbs.ecbp.util.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:62)

    錯(cuò)誤在代碼行:
    Object requested_locale = params.remove(parameterName);
    parameterName打印出來(lái)的值是:locale  回復(fù)  更多評(píng)論   

    # re: WebWork2.2新特性(四):使用國(guó)際化攔截器 2005-11-16 12:02 scud(飛云小俠)

    com.bcbs.ecbp.util.interceptor.I18nInterceptor 是什么??

    文章里沒(méi)有用這個(gè)啊  回復(fù)  更多評(píng)論   

    # re: WebWork2.2新特性(四):使用國(guó)際化攔截器 2005-11-16 13:52 Sue

    我用的是ww2.1.7,所以就從ww2.2 copy出來(lái)放到com.bcbs.ecbp.util.interceptor.I18nInterceptor的...  回復(fù)  更多評(píng)論   

    # re: WebWork2.2新特性(四):使用國(guó)際化攔截器 2005-11-16 15:10 scud(飛云小俠)

    看看這個(gè)吧
    http://wiki.opensymphony.com/pages/viewpage.action?pageId=10

    我沒(méi)有在2.1.7下用過(guò)這個(gè)攔截器

    或者是其他地方你寫(xiě)錯(cuò)了什么...這個(gè)我無(wú)從猜測(cè)..

      回復(fù)  更多評(píng)論   

    # re: WebWork2.2新特性(四):使用國(guó)際化攔截器 2005-11-18 17:02 sue

    好的。謝謝你了。  回復(fù)  更多評(píng)論   

    # re: WebWork2.2新特性(四):使用國(guó)際化攔截器 2006-02-04 07:53 fdg

    按照你的文章做,可是沒(méi)有成功,這么簡(jiǎn)單的搞這么久都沒(méi)成功,有些失去信心。
    能不能把例子做成附件,提供下載  回復(fù)  更多評(píng)論   

    # re: WebWork2.2新特性(四):使用國(guó)際化攔截器 2006-02-04 08:06 fdg

    你的這個(gè)例子要用那些jar呀?
    我把webwork2.2中starter(可以運(yùn)行)中的包全部拷過(guò)來(lái),tomcat日記提示:
    嚴(yán)重: Error listenerStart
    2006-2-4 7:55:22 org.apache.catalina.core.StandardContext start
    嚴(yán)重: Context [/i18nic] startup failed due to previous errors  回復(fù)  更多評(píng)論   

    <2005年8月>
    31123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    文章發(fā)布許可
    創(chuàng)造共用協(xié)議:署名,非商業(yè),保持一致

    我的郵件
    cnscud # gmail


    常用鏈接

    留言簿(15)

    隨筆分類(lèi)(113)

    隨筆檔案(103)

    相冊(cè)

    友情鏈接

    技術(shù)網(wǎng)站

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 在线电影你懂的亚洲| 免费毛片a线观看| 亚洲自国产拍揄拍| 亚洲国产精品无码久久一线| 亚洲欧洲尹人香蕉综合| 亚洲午夜国产片在线观看| 中文字幕人成无码免费视频| 久久午夜无码免费| 国产JIZZ中国JIZZ免费看| 国产v亚洲v天堂无码网站| 亚洲av手机在线观看| 青青青国产免费一夜七次郎| 大学生一级毛片免费看| 免费播放一区二区三区| 免费一区二区三区| 中文字幕日本人妻久久久免费| 一区二区3区免费视频| 免费高清A级毛片在线播放| 亚洲2022国产成人精品无码区 | 成人毛片视频免费网站观看| 最近中文字幕免费完整| 久久久久久久久无码精品亚洲日韩| 亚洲国产美女在线观看| 亚洲精品国产电影午夜| 亚洲日韩人妻第一页| 国产一级理论免费版| 国产成人免费ā片在线观看| 日本久久久免费高清| 日韩免费福利视频| 在线观看国产情趣免费视频| 四虎成人免费观看在线网址 | 中中文字幕亚洲无线码| 亚洲另类自拍丝袜第1页| 亚洲av无码片在线观看| 亚洲宅男精品一区在线观看| 亚洲国产激情在线一区| 亚洲欧美日本韩国| 亚洲电影在线免费观看| 亚洲人成日本在线观看| 亚洲欧洲日韩极速播放| 国产亚洲精品欧洲在线观看|