我有一个bean,它返回键值对(String,String)的映射。在我的jsff中,我需要根据键来访问地图的值,这是一个动态的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']}
请帮助我
答案 0 :(得分:0)
你没有指定 JSF EL版本,所以这里有一个 JSF2 EL2.2片段,它将起作用:
source="#{pageFlowScope.ImagesBean.imageUrlPair.get(entity.displayName)}
答案 1 :(得分:0)
从你的问题中不清楚你是否在地图或列表上进行迭代,如果它是地图,那么请尝试下面的代码,如果它是一个列表,那么它对我来说很好。
<af:image id="i2" source="# {pageFlowScope.ImagesBean.imageUrlPair
[entity.value.displayName]}"
shortDesc="user info" inlineStyle="width:50px;height:50px;"/>
答案 2 :(得分:0)
尝试source="#{pageFlowScope.ImagesBean.imageUrlPair[entity.dataProvider.displayName]}"