我可以綁定我的h:dataTable/rich:dataTable與一些Map嗎?我發現h:dataTable只能和List對象一起工作,而List中的刪除可能非常繁重。jsf使用集合/ map
4
A
回答
4
是的,沒錯。 dataTable,UI:重複和朋友只能使用列表。
您可以添加一個託管bean方法,該方法將map.keySet()或map.values()放入列表中,具體取決於您想要迭代的內容。
通常當我想從一個JSF視圖迭代的地圖,我像做
<h:dataTable value="#{bean.mapKeys}" var="key">
<h:outputText value="#{bean.map[key]}"/>
</h:dataTable>
與管理bean屬性
class Bean {
public List<T> mapKeys() {
return new ArrayList<T>(map.keySet());
}
}
或類似的東西。
當然,如果您使用類似於TreeMap
或LinkedHashMap
這樣的保留排序的方法,這是最有意義的。
+2
'
+0
好點。固定。 – wrschneider
4
如果你想在你的支持bean提供的地圖只有一個方法,你可以做這樣的事情:
class Bean {
public Map<T,U> getMap() {
return yourMap;
}
}
,並在您的JSF視圖
<h:dataTable value="#{bean.map.keySet().toArray()}" var="key">
<h:outputText value="#{bean.map[key]}"/>
</h:dataTable>
此使用將密鑰集轉換爲數組,可以由數據表迭代。使用「()」表達式需要統一表達式語言2(Java EE 6)。
相關問題
- 1. jsf forEach在集合
- 2. 想合併mongo db中的兩個集合使用map減少
- 3. JSF中的Scala集合
- 4. JSF 1.2 - 遍歷包含集合
- 5. 將集合映射到Map並反之亦然使用Mapstruct
- 6. RavenDB UpdateByIndex在非規範化集合上使用map/reduce索引
- 7. 如何使用Map集合與ICEfaces數據表組件
- 8. 在集合中使用_.map中的模型函數
- 9. 雙向多對多關聯使用Map而不是集合
- 10. MongoDB - 在C#中映射map-reduce集合
- 11. 將Spark Dataframe轉換爲Scala Map集合
- 12. 在jsf中設置集合屬性
- 13. 使用JSF轉換器時延遲加載異常(引用集合)
- 14. 需要混合使用Delayed和Map
- 15. jQuery - 在現有集合上使用集合操作函數
- 16. 使用lambdas的Java集合集合
- 17. 使用CompositeCollection展平集合的集合?
- 18. 使用Linq查詢集合集合
- 19. 使用集合集合生成XML
- 20. 使用linq合併集合
- 21. 如何迭代使用java 8流的集合的集合?
- 22. 使用對集合的接口引用
- 23. 如何通過使用multimap(apache集合類型)使用集合集合
- 24. java streams - 從值集合使用條件的值集合元素
- 25. 使用.map轉換Observable使用.map
- 26. 使用對集合
- 27. 使用jQuery集合
- 28. 使用Java集合
- 29. backbone.js集合使用
- 30. 不要混合使用JSF和jQuery?
是什麼讓你覺得它在使用地圖時不那麼「沉重」?這是一個絕對的非論點。 – BalusC
,因爲在地圖中我可以直接訪問需要的成員,並且在列表中我需要查看所有成員以找到它。 –
你認爲它在封面下做什麼? 「Map」如何找到與關鍵字相關聯的值?對,它也循環所有元素。唯一的區別是這是通過一種額外的方法隱藏起來的。用'Map'代替'List'使得它僅僅不必要地變得更加低效,因爲你基本上最終得到的是一個'Set' **和一個'List',而不是'List',它允許使用'ArrayList'實現時可以實現最快的迭代。 – BalusC