久久wwww,桃花色综合影院,国产成人精品网址http://www.aygfsteel.com/lajumboer/category/23000.htmlNothing venture Nothing havezh-cnTue, 05 Jun 2007 11:08:41 GMTTue, 05 Jun 2007 11:08:41 GMT60JSF的中文化與國際化http://www.aygfsteel.com/lajumboer/archive/2007/06/04/121996.htmllajumboerlajumboerMon, 04 Jun 2007 14:36:00 GMThttp://www.aygfsteel.com/lajumboer/archive/2007/06/04/121996.htmlhttp://www.aygfsteel.com/lajumboer/comments/121996.htmlhttp://www.aygfsteel.com/lajumboer/archive/2007/06/04/121996.html#Feedback0http://www.aygfsteel.com/lajumboer/comments/commentRss/121996.htmlhttp://www.aygfsteel.com/lajumboer/services/trackbacks/121996.html下面轉載別人的方法(在編輯過程中不小心丟失了原文章地址,在此向作者致以歉意以及感謝),也就是我參考的主要方法.但完全依照下面所述并未解決我的問題.
我用的是MyEclipse5.1.1 GA ,Eclipse3.2.2 ,JSF是sun 的參考實現1.1.x
我首先安裝了
Eclipse ResourceBundle Editor(http://sourceforge.net/project/showfiles.php?group_id=125041),可以用 它方便的創建資源包,但是我在.properties文件中寫中文后保存文件時,eclipse就會彈出 "保存問題"警告,說某些字符無法用"ISO-8859-1"來對應(翻譯的不準確,大概是這個意思).
后來我就在google上找幫助,有文章說用
Eclipse Properties Editor 4.8.2(http://propedit.sourceforge.jp/eclipse/updates/ 直接在eclipse中更新),于是我又在eclipse下安裝了它,重新啟動eclipse后發現,里面的.properties文件的圖標也變化了,圖標里有一個大寫的P,呵呵,心里隱約覺得問題應該解決了,于是在原本建好的resource_zh_CN.properties中寫中文,保存,OK!然后在瀏覽器里查看.中文正常顯示了.
對了,在設置上,我對MyEclipse 中的各個editor的編碼設置都是utf-8
-------------------------------------------------------------------------------------------
  
對于各種不同的Java應用,國際化的問題總會給我們非英文用戶帶來一些麻煩,在JSF中也一樣,在實踐中碰到了一系列不容易解決的問題,最終解決的大部分的問題,也完成了一個可以運行的小項目,我把我的一些經驗拿出來和大家分享一下,希望能讓大家在這些地方少走一些彎路。

         Java中的國際化是由 java.util.Locale 類支持的,中文對應的代碼是“zh”,所以我們要在JSF中使用中文的話,需要在我們的 faces-config.xml 中做一些簡單的配置了,加入對中文的支持,當然如果需要支持更多的語言的話,多加幾個<supported-locale>就可以了。

 

<faces-config>
    
<application>
        
<message-bundle>resource</message-bundle>
        
<locale-config>
            
<default-locale>zh</default-locale>
            
<supported-locale>en</supported-locale>
        
</locale-config>
    
</application>
</faces-config>


 

這里定義了一個<message-bundle>resource</message-bundle>指的是資源文件所在的位置和文件名,這里我們把資源文件放在source根目錄下名稱為resource.properties,這個是英文的資源文件,另外一個存放中文信息的資源文件名為resource_zh.properties。

接下來,我們可以在這些資源文件中加入我們需要的資源信息。推薦大家一個Eclipse的插件來寫我們的資源文件,這個插件叫做Eclipse ResourceBundle Editor Plugin,我們可以很方便的在里面寫中文信息,它會自動的轉換為UTF-8編碼的信息,大家可以到這個地方去下載這個插件http://resourcebundleeditor.com/ess/rbe/home.do。使用起來很簡單,這里就不再多說了。

JSP文件中使用這些資源之前,需要加入一下這些東西:

<%@ page contentType="text/html;charset=utf-8"%>

HTMLhead中加入:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

下面,我們就可以在我們的頁面中綁定并使用這些資源信息:

使用之前要加載一下資源文件,使用這個Tag

<f:loadBundle basename="resource" var="messages"/>

我在這里給消息起了個別名messages,以后就可以通過這個別名來使用資源文件。

比如我使用 <h:outputText> 來引用資源信息schedule.label.starttime可以這么用。

<h:outputText value="#{messages['schedule.label.starttime']}"/>

是不是可以用了呢?不過別急,用是能用,如果你在 JSF 中使用了 Tiles 的話,就會出現一些問題了,我們如果使用了 <h:inputText> 這樣的輸入框的話,當你輸入中文并提交,你就會發現,你輸入的文字變成這樣的了“\u5DF2\u5B8C\u6210”,曾經為了這個問題,找解決方案花了我三周的時間。首先把問題定位到 Tiles 上,因為如果不使用 Tiles 的話,是沒有這個問題的,但是 Tiles 又不能不用的,最后發現其實很容易的,只要在 <f:view> 中加上 locale=”zh” 就可以了,如果需要的話,可以把這個屬性動態化,滿足國際化的需要,就像這樣<f:view locale="#{userProfile.locale}">。

這樣的話,一切都正常了,使用 Tiles 也沒有問題的。

今天有朋友問了我關于 JavaScript 中的中文亂碼問題,我在我的JSP中找了一段代碼拿出來看看:

<h:commandLink action=".." (!confirm('#{messages['system.msg.confirmdel']}')) return false;">

這樣的話,里面的中文是可以正常顯示的,下面我給大家一些建議吧,希望對大家有一些幫助。

1.        所有文字信息全部寫在資源文件中,通過引用其別名來使用這些信息;

2.        所有的中文要轉換成 UTF-8 編碼,可以使用Eclipse ResourceBundle Editor Plugin來解決;

3.        頁面編碼方式定義成 UTF-8 ,不要使用其默認值。

當然,這只是我在使用中積累的一點小小的經驗了,希望能對大家有一點幫助,如果大家發現有什么不正確就請賜教,如果更好的解決方案,也拿出來和大家分享吧,因為我們的分享可能會給大家節省更多的時間。



lajumboer 2007-06-04 22:36 發表評論
]]>
主站蜘蛛池模板: 罗源县| 通山县| 东至县| 永定县| 宝坻区| 沅陵县| 成都市| 吉木萨尔县| 潼南县| 道孚县| 渭南市| 鄢陵县| 宜阳县| 城市| 密云县| 英德市| 淅川县| 鄂托克旗| 施秉县| 浦东新区| 桑日县| 仪陇县| 繁峙县| 宜良县| 孝义市| 云浮市| 托里县| 上栗县| 丹凤县| 固原市| 依兰县| 当涂县| 义马市| 仪陇县| 东乌| 左权县| 石河子市| 宾川县| 万州区| 濮阳县| 怀远县|