2013-03-11 66 views
0

我有一個bean,它返回鍵值對(String,String)的映射。在我jsff,我需要訪問基於關鍵地圖的值,它是一個動態的EL表達式地圖中的動態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

什麼是imageUrlPair的類型? – 2013-03-12 00:03:29

+0

第一行是有效的語法。其他的是明顯無效的語法。我不做ADF,但是這個問題表明與PrimeFaces''有相同的理由:http://stackoverflow.com/questions/8207325/display-image-from-database-with- pgraphicimage/12452144#12452144 – BalusC 2013-03-13 12:44:05

回答

0

沒有指定 JSF EL版本,所以這裏是一個 JSF2 EL2.2片段那將起作用:

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

我使用JSF 1.2,這個#{pageFlowScope.ImagesBean.imageUrlPair.get(entity.displayName)}在get() – Rhiya 2013-03-11 23:18:22

+0

上給我一個語法錯誤。這個特性是特定於EL,而不是JSF:http: //stackoverflow.com/a/8326551 – BalusC 2013-03-13 12:42:21

0

從你的問題來看,如果你迭代地圖或列表,如果它是一張地圖,然後嘗試下面的代碼,如果它是一個列表,那麼它對我來說看起來不錯,這是不清楚的。

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

嘗試source="#{pageFlowScope.ImagesBean.imageUrlPair[entity.dataProvider.displayName]}"