我正在尝试在DataTable中显示一个Hashmap,下面是我要做的:我将有一个一些产品的选择菜单,一个quantity的输入文本,一个将产品及其数量添加到map中的"ajaxified“add按钮,以及一个submit按钮,它显示一个包含两列的DataTable的摘要对话框:产品名称和数量。我的Hashmap是
Map<Product,Integer> myMap = new HashMap<Product,Integer>();
对于ajaxified按钮和所有的第一步,它们对我来说是有效的,我已经设置好了所有的东西,并且正确地填充了地图,剩下的就是显示数据。
提前谢谢。
发布于 2012-01-31 13:01:41
您可以像这样创建Class:
public class Product{
private int id;
private String productName;
private int quantitiy;
// add getters setters here
}
// add product id to map key
Map<Integer,Product> myMap = new HashMap<Integer,Product>();
public Map<Integer,Product> getProductMap() {
return myMap;
}
public List<Product> getProducts() {
return new ArrayList<Product>(myMap.values()_;
}
将数据表值添加到getProducts()列表
否则,将product作为映射键,
Map<Product,Integer> myMap = new HashMap<Product,Integer>();
public List<Map.Entry<Product, Integer>> getProducts() {
Set<Map.Entry<Product, Integer>> productSet =
myMap.entrySet();
return new ArrayList<Map.Entry<Product, Integer>>(productSet);
}
这样写primeface页面,
<p:dataTable value="#{productBean.products}" var="productEntry">
<p:column>
<h:outputText value="#{productEntry.key.productName}" />
</p:column>
<p:column>
<h:outputText value="#{productEntry.value}" />
</p:column>
</p:dataTable>
https://stackoverflow.com/questions/9074177
复制相似问题