首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在primefaces DataTable中显示Hashmap键和值

在primefaces DataTable中显示Hashmap键和值
EN

Stack Overflow用户
提问于 2012-01-31 12:00:56
回答 1查看 49.8K关注 0票数 26

我正在尝试在DataTable中显示一个Hashmap,下面是我要做的:我将有一个一些产品的选择菜单,一个quantity的输入文本,一个将产品及其数量添加到map中的"ajaxified“add按钮,以及一个submit按钮,它显示一个包含两列的DataTable的摘要对话框:产品名称和数量。我的Hashmap是

代码语言:javascript
复制
Map<Product,Integer> myMap = new HashMap<Product,Integer>();

对于ajaxified按钮和所有的第一步,它们对我来说是有效的,我已经设置好了所有的东西,并且正确地填充了地图,剩下的就是显示数据。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-31 13:01:41

您可以像这样创建Class:

代码语言:javascript
复制
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作为映射键,

代码语言:javascript
复制
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页面,

代码语言:javascript
复制
<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>
票数 42
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9074177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档