如何在EL中使用映射键,它是静态字符串和EL变量的串联

时间:2013-08-13 17:11:48

标签: jsf-2 primefaces el

我的<p:dataTable var="object">里面有<p:commandLink>。在我的bean中,我有一个Map,我希望在<p:commandLink value>中显示其值。我需要将密钥传递给此映射,该映射是"someString"#{object.firstName}的串联。我想这样的工作:

value="#{bean.map['someString'+object.firstName]}"

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以通过创建一个新的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以获得相同的功能。