我有<p:dataTable var="object">
一个<p:commandLink>
里面。在我的 bean 中,我有一个Map
我想在其中显示的值<p:commandLink value>
。我需要将一个键传递给这个映射,它是"someString"
and的连接#{object.firstName}
。我想要这样的工作:
value="#{bean.map['someString'+object.firstName]}"
我怎样才能做到这一点?
我有<p:dataTable var="object">
一个<p:commandLink>
里面。在我的 bean 中,我有一个Map
我想在其中显示的值<p:commandLink value>
。我需要将一个键传递给这个映射,它是"someString"
and的连接#{object.firstName}
。我想要这样的工作:
value="#{bean.map['someString'+object.firstName]}"
我怎样才能做到这一点?
您可以通过使用刚刚内联的字符串和 EL 表达式创建一个新的 EL 变量来连接 EL 中的字符串。你可以使用<c:set>
它。
<c:set var="key" value="someString#{object.firstName}" />
<p:commandLink value="#{bean.map[key]}" ... />
或者,如果您已经在支持调用直接方法的 EL 2.2 上,那么您可以直接使用String#concat()
方法。
<p:commandLink value="#{bean.map['someString'.concat(object.firstName)]}" ... />
如果您还没有使用 EL 2.2,但正在使用 EL 2.1,那么您始终可以安装JBoss EL以获得相同的功能。
AC_1985 先生没有回应,但为了获得信息,我有一些符合这些方面的工作代码。
<h:panelGrid columns="1" cellpadding="5" style="width:100%">
<p:inputTextarea id="factsText" style="width:100%; height:100%;" rows="18" cols="100"
value="#{property.model.property.facts[property.model.factsLanguage.code]}"
counter="display" maxlength="2000" counterTemplate="{0} characters remaining." autoResize="false" />
<h:outputText id="display" />
</h:panelGrid>
在这里,我有一个组合框,我可以在其中选择一种语言。然后从地图中检索所选语言的文本。
一如既往地感谢 My BalusC 的宝贵帮助。
艾伦