我试图迭代映射项列表,即HashMap的ArrayList或类似的东西,我试图在primefaces数据表中做到这一点。这基本上就是我想要做的事:在primefaces数据表中遍历List <Map <String,String >>?
<body>
<h:form>
<p:dataTable value="#{customerBean.list}" var="map">
<c:forEach items="#{map}" var="entry">
<p:column headerText="#{entry.key}">
#{entry.value}
</p:column>
</c:forEach>
</p:dataTable>
</h:form>
</body>
在这种情况下,customerBean.list
是List<Map<String, String>>
和条目是Map<String, String>
。
我想要做的是根据Map<String, String>
中的条目数量创建动态数量的列,同时使用映射条目的键作为标题名称,并将该值作为输出。当我使用硬编码的Map<String, String>
时,c:forEach
的东西似乎工作正常,但显然它无法循环访问p:dataTable
的变量。我假定该程序采取了预防措施,以避免必须循环访问不同大小的地图。那么我怎么能做这个工作呢?如何根据Map中的条目数量创建任意数量的列?请注意,我是100%肯定,每一个Map<String, String>
是大小相等的在我List<Map<String, String>>
编辑:
这里是我的豆源。代码工作很好,一切,问题是刚刚与循环不愿意去,通过我的地图:
@ManagedBean
@SessionScoped
public class CustomerBean {
private List<Map<String, String>> list = new ArrayList<Map<String, String>>();
private Mapper mapper = new Mapper();
public CustomerBean() {
list = mapper.all(); //gets data from database
}
public List<Map<String, String>> getList() {
return list;
}
public void setList(List<Map<String, String>> list) {
this.list = list;
}
}
请张贴您的backbean代码。 – Makky
相关:http://stackoverflow.com/questions/3342984/jstl-in-jsf2-facelets-makes-sense和http://stackoverflow.com/questions/13176842/dynamically-generate-hcolumn-based-on-list -of-hashmaps/ – BalusC