[英]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:cellEditor
在Primefaces展示櫃中找到有關此組件的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.