繁体   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