我可以绑定我的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