web-dev-qa-db-ja.com

primefaces DataTableでのハッシュマップキーと値の表示

DataTableにハッシュマップを表示しようとしていますが、ここでやろうとしていることは次のとおりです。その量をマップに追加し、[製品名]と[数量]の2つの列を持つDataTableを含む要約ダイアログを表示する送信ボタン。私のハッシュマップは

Map<Product,Integer> myMap = new HashMap<Product,Integer>();

ajax化されたボタンとそれらのすべての最初のステップについては、彼らは私のために働いています。

前もって感謝します。

23
snajahi

次のようにクラスを作成します。

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()リストにデータテーブル値を追加します

それ以外の場合は、マップキーとしての製品、

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

プライムフェイスページをこのように書いて、

<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>
38
Kushan