过去几天我被困在这里。我的bean有HashMap
,其地图值为objects
。我试图通过将其转换为列表来迭代地图。
如果我做这样的事情 在bean
List<Map.Entry<String, List<Objects>>> entrySet = new ArrayList<…>map.EntrySet();
在xhtml中:
<p:datatable var=”obj” value=”#{bean.entrySet}”>>
<p:columnGroup>
<p:row>
<ui:repeat var=”values” value=”#{obj.value}”>
<p:column headerText=”#{values.xyz}” />
</ui:repeat>
<p:row>
</p:columnGroup>
</p:datatable>
它显示一个空列
但是,如果我这样做: 在bean
List<Object> list = new ArrayList<Object>();
在xhtml中:
<p:datatable>
…
<ui:repeat var=”values” value=”#{bean.list}”>
…
</ui:repeat>
…
</p:datatable>
有效。我不明白的是hashmap的值是对象列表。如果我迭代列表中的值,为什么它不起作用?
如果有人能告诉我第一种方法有什么问题,我真的很感激。我可以使用第二个,但它需要在bean中进行重大更改。
我已经看过以下问题,但无法解决我的问题
How to show hashmap values in jsf?
Primefaces static and dynamic columns in datatable
Creating and populating a DataTable dynamically in JSF2.0
How to display variable number of columns in primefaces datatable