我的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\']}");
这也会导致错误。 有什么建议吗?
答案 0 :(得分:8)
你确实需要使用括号表示法,当'key'包含在EL中有意义的字符时,你不需要逃避单引号,无论JS语法高亮显示器告诉你什么。 EL在Java / JSF运行时运行,而不是在JS运行时运行。
alert("#{bundle['message.email.sent']}");