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

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

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

    大大毛 的筆記

      DDM's Note

    哪怕沒(méi)有辦法一定有說(shuō)法,
    就算沒(méi)有鴿子一定有烏鴉,
    固執(zhí)無(wú)罪 夢(mèng)想有價(jià),
    讓他們驚訝.

    posts - 14, comments - 23, trackbacks - 0, articles - 58
       :: 首頁(yè) ::  :: 聯(lián)系 ::  :: 管理

    Struts國(guó)際化的快速演示

    Posted on 2006-07-24 22:59 大大毛 閱讀(450) 評(píng)論(0)  編輯  收藏 所屬分類: Struts
    ???前言:
    ??????雖說(shuō)剛看"精通Struts"幾章,已經(jīng)迫不及待的想試試它的"國(guó)際化"效果了.測(cè)試環(huán)境:JDK1.4 + Tomcat5 +?中文XP

    ??????先用的方法是網(wǎng)絡(luò)上流行的方法:
    ??????在IE/Internet選項(xiàng)/語(yǔ)言 中刪除掉中文,選擇英文,如此類推,則可以看到頁(yè)面的國(guó)際化效果.
    ??????但是這種方法有缺點(diǎn):
    ?????????1.很麻煩;
    ?????????2.非常的不靈,剛開(kāi)始俺整了幾回都偶爾出效果了,但是玩這招多了,Tomcat5.0.29就再也不理我了,任我怎么變,它依舊顯示中文.
    ??????基于第2點(diǎn)那是非解決不可啊

    ???
    分析:
    ??????按"精通Struts"里面對(duì)于Struts國(guó)際化的解釋,應(yīng)該是頁(yè)面會(huì)從Session(如果有的話)中取出Locale對(duì)象,只有當(dāng)該對(duì)象為空時(shí)才會(huì)將request中的Locale對(duì)象放入session中去,而資源文件的選擇是依據(jù)session中的Locale對(duì)象的,如此這般,就可以拿出一個(gè)簡(jiǎn)單點(diǎn)演示國(guó)際化效果的方法來(lái):
    ?????????提供一個(gè)JSP讓用戶選擇語(yǔ)種,如英文,中文.提交到Action時(shí) 來(lái)個(gè)相應(yīng)處理
    ???????? if (action.equalsIgnoreCase( " english " ))?{
    ????????????request.getSession().setAttribute(Globals.LOCALE_KEY,
    new ?Locale( " en " , ""
    ));
    ????????}
    ????????
    if (action.equalsIgnoreCase( " chinese "
    ))?{
    ????????????request.getSession().setAttribute(Globals.LOCALE_KEY,
    new ?Locale( " zh " , " CN "
    ));
    ????????}
    ?????????這樣做應(yīng)該是符合Struts的要求的,結(jié)果測(cè)試失敗.

    ???
    解決辦法:
    ??????事實(shí)證明,并不是理解Struts有誤, 問(wèn)題只是出在容器的處理方法上,還是按上面的方法,搭配Tomcat5.5測(cè)試成功,現(xiàn)在要想看"國(guó)際化"的效果就輕松多了,只要在應(yīng)用的主菜單上加入語(yǔ)言選項(xiàng),以后的各種跳轉(zhuǎn)都一切OK.

    ???
    還存在的問(wèn)題:
    ??????經(jīng)測(cè)試證明,這種方法能夠達(dá)到根據(jù)菜單自動(dòng)切換語(yǔ)種顯示的目的,但是也注意到了一點(diǎn),就是 request.getLocale(); 方法得到的始終都是本機(jī)IE的編碼,這與session中存放的那個(gè)Locale是不一致的,當(dāng)然也是利用了Struts需要先判斷session中的Locale對(duì)象是否為空才進(jìn)行改變這一點(diǎn).不過(guò)這也帶來(lái)這種演示方法的局限性:
    ??????1.有些Struts應(yīng)用是允許客戶端在應(yīng)用的過(guò)程中改變Locale的,因此為此覆蓋了RequestProccessor.proccessLocale()方法,支持動(dòng)態(tài)的更新.這樣會(huì)造成此種演示方法的可恥失敗;
    ??????2.必須依賴于session,
    ??????3.如果程序中存在有手工從資源文件中取資源的情況(如我提到過(guò)的標(biāo)簽中的使用),那么
    ?
    ???getMessage(?(Locale)session.getAttribute(Globals.LOCALE_KEY)?, key )
    ??????與
    ???getMessage( request.getLocale() ,?key?)
    ??????的效果是會(huì)完全不同的.

    ??
    ?有關(guān)Tomcat5.5的一點(diǎn)提示:
    ??????網(wǎng)上有說(shuō)
    Tomcat5.5 ?是不能與 JDK1.4 搭配使用的,只能用 JDK5 ,這是錯(cuò)誤的.
    ??????Tomcat5.5如果搭配 JDK1.4 使用的話,需要注意一點(diǎn)的是:
    ?????????1.不能使用那個(gè)for windows 的EXE安裝文件,需要下載ZIP文件進(jìn)行安裝;
    ?????????2.除了必需下載的那個(gè) apache-tomcat-5.5.x.zip 主體文件外,使用 JDK1.4 還必須下載那個(gè) apache-tomcat-5.5.x-compat.zip 文件才行,下載回來(lái)后解壓到同一個(gè)目錄中即可直接使用.
    ?????????3.手工添加管理員
    ????????????向Tomcat\conf\tomcat-users.xml中加入
    ???????????????<role rolename="admin" />
    ???????????????<role rolename="manager" />
    ???????????????<user username="admin" password="你的密碼" roles="admin,manager" />

    ??????另外Tomcat5.5與Tomcat5.0還有一個(gè)顯著的區(qū)別就是在數(shù)據(jù)源的使用上
    ?????????Tomcat5.0是用的DBCP數(shù)據(jù)源的,因此common/lib下有DBCP需要用到的包;
    ?????????而Tomcat5.5則不同,如果想要使用DBCP數(shù)據(jù)源的話,需要手工向common/lib下加下DBCP所需的包:
    ????????????commons-dbcp-1.2.1.jar;
    ????????????commons-collections-3.1.jar;
    ????????????commons-pool-1.2.jar;

    i am ddm

    主站蜘蛛池模板: 免费一区二区三区在线视频| 国产真人无码作爱免费视频| 免费日韩在线视频| 国产高清视频免费在线观看| 婷婷亚洲综合五月天小说| 在线视频免费观看高清| 日韩大片免费观看视频播放| 亚洲欧洲日产国码久在线观看| 妞干网在线免费视频| AAAAA级少妇高潮大片免费看| 亚洲成a人片在线观看中文!!!| 国产极品粉嫩泬免费观看| 暖暖在线视频免费视频| 亚洲天然素人无码专区| 亚洲成av人在线视| 国产亚洲福利一区二区免费看| 一级毛片免费播放| 国产精品亚洲综合天堂夜夜| 久久久久久久亚洲Av无码| 又粗又硬又黄又爽的免费视频| 91香蕉国产线观看免费全集| 免费无遮挡无遮羞在线看| 亚洲日本乱码一区二区在线二产线 | 色偷偷女男人的天堂亚洲网| 亚洲真人日本在线| 成人毛片免费视频| 午夜不卡久久精品无码免费| 国产成人综合亚洲绿色| 亚洲视频一区在线| 久久99亚洲综合精品首页| 四虎影院免费在线播放| 香港a毛片免费观看 | 特级精品毛片免费观看| 国产亚洲精品91| 国产成人精品日本亚洲专区6| 国产亚洲欧洲Aⅴ综合一区| 永久免费av无码网站大全| 在线免费观看亚洲| 免费在线看污视频| 一级做a爰片久久毛片免费陪| 亚洲日本VA午夜在线影院|