2010-08-02 45 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