动态 ResourceBundle 键的 EL 中的字符串串联

发布于 2024-10-14 20:59:07 字数 265 浏览 3 评论 0原文

我有一个包含如下条目的资源包:

entry1=value1
entry2=value2
entry3=value3

在我的 JSF 页面中,我尝试动态使用这些键。条目的 ID 来自托管 bean。我认为应该是这样的:

<h:outputText value="#{msg['entry' managedBean.entryIndex]}"/>

我怎样才能实现这个目标?

I have a resource bundle with entries like these:

entry1=value1
entry2=value2
entry3=value3

In my JSF page I'm trying to use these keys dynamically. The ID of the entry is coming from a managed bean. I think it should be something like this:

<h:outputText value="#{msg['entry' managedBean.entryIndex]}"/>

How can I achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

沧笙踏歌 2024-10-21 20:59:07

如果您已经使用 Servlet 3.1 / EL 3.0(Tomcat 8、WildFly 8、GlassFish 4 等),请使用新的 EL 3.0 += 运算符:

<h:outputText value="#{msg['entry' += managedBean.entryIndex]}" />

如果您仅使用 Servlet 3.0 / EL 2.2(Tomcat 7、JBoss AS 6/7、GlassFish 3 等),利用新的 EL 2.2 功能直接调用 String#concat() 等方法:

<h:outputText value="#{msg['entry'.concat(managedBean.entryIndex)]}" />

如果您甚至不知道在 Servlet 3.0 / EL 2.2 上,使用 创建另一个内联所需 EL 表达式的变量:

<c:set var="key" value="entry#{managedBean.entryIndex}" />
<h:outputText value="#{msg[key]}" />

If you're already on Servlet 3.1 / EL 3.0 (Tomcat 8, WildFly 8, GlassFish 4, etc), make use of new EL 3.0 += operator:

<h:outputText value="#{msg['entry' += managedBean.entryIndex]}" />

If you're only on Servlet 3.0 / EL 2.2 (Tomcat 7, JBoss AS 6/7, GlassFish 3, etc), make use of new EL 2.2 ability to directly invoke methods such as String#concat():

<h:outputText value="#{msg['entry'.concat(managedBean.entryIndex)]}" />

If you're even not on Servlet 3.0 / EL 2.2 yet, make use of <c:set> to create another variable with the desired EL expression inlined:

<c:set var="key" value="entry#{managedBean.entryIndex}" />
<h:outputText value="#{msg[key]}" />
太阳公公是暖光 2024-10-21 20:59:07

这应该可以解决您的问题:

<h:outputText value="#{msg['entry'.concat(managedBean.entryIndex)]}"/>

This should solve your issue:

<h:outputText value="#{msg['entry'.concat(managedBean.entryIndex)]}"/>
白云悠悠 2024-10-21 20:59:07

这对我有用:在 [] 之外连接

<h:outputText value="#{msg['entry'].concat(managedBean.entryIndex)}" />

Here's what worked for me : concat outside of []

<h:outputText value="#{msg['entry'].concat(managedBean.entryIndex)}" />
笑红尘 2024-10-21 20:59:07

我认为您必须编写一个facelets函数concat(str1, str2)

I think you'll have to write a facelets function concat(str1, str2).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文