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

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

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

    小菜毛毛技術(shù)分享

    與大家共同成長(zhǎng)

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      164 Posts :: 141 Stories :: 94 Comments :: 0 Trackbacks

    1.UTF-8

    原來(lái)用慣了GBK,被大家一再慫恿,才下定決心整個(gè)項(xiàng)目換用UTF-8編碼。

    編碼問(wèn)題幾乎與所有國(guó)內(nèi)Java項(xiàng)目相伴而生,不同內(nèi)核的Linux、英文版日文版的WindowsXP總是讓GBK很頭痛,而改用UTF-8后,忽然就輕爽了,UTF-8,全世界語(yǔ)系連馬爾代夫語(yǔ)都有自己的座位,實(shí)在找不到理由為什么還要用只支持大中華的GBK。

    而且Springside也成了一個(gè)帶有大量UTF-8中文注釋的項(xiàng)目。

    原GBK項(xiàng)目的轉(zhuǎn)換方法

      把自己當(dāng)成車衣廠女工,機(jī)械的使用UltraEdit和EditPlus的轉(zhuǎn)換功能,忙活一兩個(gè)小時(shí),怎么都可以轉(zhuǎn)完所有文件了。

      其中UltraEdit的轉(zhuǎn)換方法是文件--〉轉(zhuǎn)換--〉A(chǔ)SCII to UTF-8(Unicode編輯)。最好在Advanced-〉本地代碼頁(yè)那里也設(shè)一下UTF-8。

      然后就可以用設(shè)了UTF-8選項(xiàng)的IDE如IDEA,Eclipse直接編輯了。

    2.國(guó)際化 I18N

          后臺(tái)的menu.jsp 和 editBook.jsp 還有業(yè)務(wù)異常類,演示了i18N的應(yīng)用。

    2.1 i18N基礎(chǔ)      

      1.編寫messages.zh_CN.properties

         用中文寫完后,用java帶的native2ascii.exe或者ant的native任務(wù)把它轉(zhuǎn)成非人類的Unicode編碼。

      2.在純Java API里,國(guó)際化是這樣做的:

    ResourceBundle rb = ResourceBundle.getBundle("messages");
    String welcome = rb.getString("welcome");
    String welcomeCalvin = MessageFormat.format(welcome,new String[]{"calvin"});

      第一二句從classpath里找到messages_zh_CN.properties,讀出"歡迎你,{0}"字樣。

      第三局把上文格式化成"歡迎你,calvin" 

     3.在Servlet環(huán)境下,國(guó)際化是這樣做的   

    51.la 專業(yè)、免費(fèi)、強(qiáng)健的訪問(wèn)統(tǒng)計(jì) 則靠<fmt:message>tag

     

    <%@ taglib uri="
    <fmt:message key="welcome"/>

          可以用context-param來(lái)定義默認(rèn)的properties文件

        <context-param>
                <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
                <param-value>messages</param-value>
        </context-param>

         不過(guò)這樣定義的缺點(diǎn)是只能定義一個(gè)文件,如果所有信息都集中在一個(gè)文件會(huì)好長(zhǎng),而如果有多個(gè)properties,就惟有在頁(yè)面用<fmt:bundle>綁定了。

    2.2 Spring的messageSource增強(qiáng)

    Spring增加了MessageSource的概念

      一是ApplicationContext將充當(dāng)一個(gè)單例的角色,不再需要每次使用i18時(shí)都初始化一次ResourceBundle

      二是可以代表多個(gè)Resource Bundle.

      在ApplicationContext的定義文件中,增加如下節(jié)點(diǎn): 

    <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    
        <property name="basename" value= "messages"/>
    </bean>

    在pure Java中

    context.getMessage("welcome", null, LocaleContextHolder.getLocale())

    而經(jīng)Spring MVC JSTL ViewResolver調(diào)用的JSP,<fmt:message>將繼續(xù)發(fā)揮它的功效。

    不過(guò)這里挺麻煩的,第一如果不是從MVC JSTL轉(zhuǎn)的,messageSource的定義就會(huì)失效。而如果定義了<context-param>,則messageSource的定義又會(huì)失效.......

     還有,<spring:message> 雞肋一塊,因?yàn)樗绻也坏絢ey對(duì)應(yīng)的就會(huì)拋異常,好恐怖。

    還還有,spring還有有趣的theme機(jī)制,和i18n一樣的原理,解決了"做成圖片的文字"的國(guó)際化,讓不同語(yǔ)言的美術(shù)字圖片的路徑分別定義在theme_zh_CN.properties和theme_en_US.properties里面。


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
    相關(guān)文章:
     
    主站蜘蛛池模板: 国产v精品成人免费视频400条| 久久精品亚洲综合| 国产成人精品免费视频网页大全 | 美女视频黄.免费网址| 亚洲宅男天堂a在线| 国产精品亚洲аv无码播放| 免费国产成人高清在线观看麻豆| 国产91免费在线观看| 国产成人精品无码免费看| 国产乱子伦精品免费视频| 男人的天堂av亚洲一区2区| 亚洲一区二区三区亚瑟 | 91精品国产免费久久国语麻豆| 一个人看的免费高清视频日本| 亚洲欧美日韩中文二区| 亚洲国产精品一区二区三区在线观看| 亚洲白色白色永久观看| 色婷婷亚洲十月十月色天| 亚洲国产精品无码久久久不卡| 亚洲欧洲久久av| 亚洲国产精品一区二区第四页| 真实乱视频国产免费观看| 成全视频免费高清| 成人毛片18女人毛片免费视频未| 97视频免费在线| 国产曰批免费视频播放免费s| 国产h肉在线视频免费观看| 67194成手机免费观看| 4444www免费看| 16女性下面扒开无遮挡免费| 99视频全部免费精品全部四虎| h片在线免费观看| 国产精品久久久久免费a∨| 人与禽交免费网站视频| 国产v精品成人免费视频400条| 最近免费中文字幕大全视频| 成全高清视频免费观看| 国产免费131美女视频| 亚洲国产成人久久综合区| 中文字幕亚洲第一| 亚洲国产精品无码专区|