我有一个数据表,其中包含" Package"对象和2列(packageBarcode和地址)。我需要添加一个列(包中的字母总数),但该值不在对象中。这就是为什么,我使用了HashMap。我在这个HashMap中映射了packageId和totalNumberOfLetters。我想在dataTable中显示这些值。我怎么能这样做?
<p:column headerText="package"
sortBy="#{package.barcode}"
filterBy="#{package.barcode}"
>
<h:outputText value="#{package.barcode}" />
</p:column>
答案 0 :(得分:4)
提供
private List<Package> packages;
private Map<Long, Integer> totalNumberOfLettersByPackageId;
您可以按以下方式访问
<h:dataTable value="#{bean.packages}" var="_package">
<h:column>#{bean.totalNumberOfLettersByPackageId[_package.id]}</h:column>
</h:dataTable>
请注意我将package
加上_
前缀,因为package
是一个Java文字,一个理智的EL实现会在其上抛出一个运行时异常。