1

我有<p:dataTable var="object">一个<p:commandLink>里面。在我的 bean 中,我有一个Map我想在其中显示的值<p:commandLink value>。我需要将一个键传递给这个映射,它是"someString"and的连接#{object.firstName}。我想要这样的工作:

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

我怎样才能做到这一点?

4

2 回答 2

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以获得相同的功能。

于 2013-08-13T18:17:55.843 回答
0

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 的宝贵帮助。

艾伦

于 2015-07-15T11:33:44.783 回答