2010-08-02 60 views
3

我的JSF2應用程序使用ResourceBundle完全國際化。訪問包含點的ResourceBundle鍵?

現在我有很多Javascript代碼,它會提供一些提醒和內容。在那裏我想訪問我的ResourceBundle。我可以成功訪問簡單的ResourceBundle鍵這樣的:

alert("#{bundle.message_email_sent}"); 

不幸的是,我在我的包鑰匙約定是使用點作爲我的密鑰的分隔符,例如message.email.sent=E-Mails sent.。但是當我做

alert("#{bundle.message.email.sent}"); 

JSF試圖訪問「電子郵件」就像由bundle.message返回的字符串函數。 我如何告訴EL解析器使用整個「message.email.sent」作爲關鍵?

我也嘗試這樣的東西

alert("#{bundle[\'message.email.sent\']}"); 

這也會導致錯誤。 有什麼建議嗎?

回答

8

當'key'包含EL中含義的字符時,您確實需要使用括號表示法,但不需要轉義單引號,無論JS語法熒光筆是否告訴您其他情況。 EL在Java/JSF運行時運行,而不是在JS運行時運行。

alert("#{bundle['message.email.sent']}"); 
+0

那麼顯而易見...爲什麼我沒有測試它?謝謝! – ifischer 2010-08-03 14:51:03

+0

不客氣。 – BalusC 2010-08-03 14:53:03