簡體   English   中英

在JSF或Primefaces數據表中編輯哈希圖

[英]Edit hashmap in JSF or Primefaces datatable

我有一個代表服務提供者的對象。 在那個對象中,我有這個哈希圖

private Map<MetaDataKeys, String> metaData;

“ MetaDatatKeys”是一個看起來像這樣的枚舉,

public enum MetaDataKeys {
    PROVIDER_NAME, PROVIDER_CONTACT_NAME, PROVIDER_SERVICE_RADIUS;
}

我想在數據表或類似表格中顯示哈希映射鍵/值對,以進行編輯,類似

            <p:dataTable id="providerDatatable" var="infoMap" value="#{editUserBean.editUser.metaData}">
                <p:column><h:outputText value="#{infoMap.key.metaData}"/></p:column>
                <p:column><h:inputText value="#{infoMap.key.value}"/></p:column>
            </p:dataTable>

在我的后備bean中,“ editUser”是包含映射的對象。

最好的方法是什么? 我什至沒有成功地使表呈現和填充值。 在搜索大多數示例時,請使用字符串或原語作為關鍵字。

您應該通過Map.entrySet()在數據表中進行迭代,這是更好的方法。 如果您嘗試通過Map.keySet()進行感測,而不是通過鍵獲取值,則可以采用O(n ^ 2)。

為您的任務實現看起來像:

<p:dataTable id="providerDatatable" var="infoMap" value="#{editUserBean.editUser.metaData.entrySet()}">
    <p:column><h:outputText value="#{infoMap.key}"/></p:column>
    <p:column><h:inputText value="#{infoMap.value}"/></p:column>
</p:dataTable>

要編輯表格行,您可以使用p:cellEditorPrimefaces展示櫃中找到有關此組件的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM