地图中的动态El表达式求值



我有一个bean,它返回键值对(String,String)的映射。在我的jsff中,我需要基于key访问映射的值,key是一个动态El表达式

<af:iterator id="i1" value="#{bindings.leaderBoardEntities.collectionModel}"
var="entity" rows="#{bindings.leaderBoardEntities.rangeSize}">
    <af:image id="i2" source="#  {pageFlowScope.ImagesBean.imageUrlPair[entity.displayName]}"
    shortDesc="user info" inlineStyle="width:50px;height:50px;"/>
</af:iterator>

我无法计算映射的键值。我试着,

source="#{pageFlowScope.ImagesBean.imageUrlPair[entity.displayName]}
source="#{pageFlowScope.ImagesBean.imageUrlPair['#{entity.displayName}']}
source="#{pageFlowScope.ImagesBean.imageUrlPair['${entity.displayName}']}
source="#{pageFlowScope.ImagesBean.imageUrlPair[#{entity.displayName}]}--this is     syntactically wrong

然而,这是有效的

source="#{pageFlowScope.ImagesBean.imageUrlPair['Twitter']}

请帮帮我

如果你迭代映射或列表,那么从你的问题中不清楚,如果它是一个映射,那么尝试下面的代码,如果它是一个列表,那么它对我来说看起来不错。

  <af:image id="i2" source="#  {pageFlowScope.ImagesBean.imageUrlPair
[entity.value.displayName]}"
        shortDesc="user info" inlineStyle="width:50px;height:50px;"/>

您没有指定JSF EL版本,所以这里有一个可以工作的JSF2 EL2.2代码片段:

source="#{pageFlowScope.ImagesBean.imageUrlPair.get(entity.displayName)}

尝试source="#{pageFlowScope.ImagesBean.imageUrlPair[entity.dataProvider.displayName]}"

相关内容

  • 没有找到相关文章