访问包含点的ResourceBundle键?

时间:2010-08-02 18:10:47

标签: jsf jsf-2 el

我的JSF2应用程序使用ResourceBundle完全国际化。

现在我有很多Javascript代码,它可以提供一些警报和内容。在那里,我想访问我的ResourceBundle。我可以成功访问简单的ResourceBundle键,如下所示:

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

不幸的是,我的捆绑中的密钥约定是使用点作为我的密钥的分隔符,例如message.email.sent=E-Mails sent.。但是当我做的时候

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

JSF尝试像bundle.message返回的字符串上的函数一样访问“email”。 我如何告诉EL解析器使用整个“message.email.sent”作为密钥?

我也试过像

这样的东西
alert("#{bundle[\'message.email.sent\']}");

这也会导致错误。 有什么建议吗?

1 个答案:

答案 0 :(得分:8)

你确实需要使用括号表示法,当'key'包含在EL中有意义的字符时,你不需要逃避单引号,无论JS语法高亮显示器告诉你什么。 EL在Java / JSF运行时运行,而不是在JS运行时运行。

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