Displaying Hashmap keys and values in a primefaces DataTable

前端 未结 1 1439
無奈伤痛
無奈伤痛 2020-12-08 15:28

I\'m trying to display a Hashmap in a DataTable, here\'s what i\'m trying to do : I\'ll have a select menu of some products, and an input text for quantity, an \"ajaxified\"

相关标签:
1条回答
  • 2020-12-08 15:46

    You create Class like this:

    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()_;
    }
    

    Add datatable value to getProducts() List

    Otherwise, product as a map key then,

    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);
    }
    

    write primeface page like this way,

    <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>
    
    0 讨论(0)
提交回复
热议问题