我在Glassfish服务器4.1上使用Primefaces 5和JDK 1.8。
我用以下结构()创建一个页面xhtml:
<p:dataTable value="#{myBean.myList}" ...>
<p:column>MyLabel</p:column>
<p:column>MyImage</p:column>
<p:column>MyDescription</p:column>
</p:dataTable>
所以我在输出中看到一个包含3列的表:
label, image and description
label, image and description
label, image and description
label, image and description
label, image and description
label, image and description
...
我的bean的对象myList返回大约50行显示在我的页面上。如何在2列上查看此行?有点像:
label, image and description label, image and description
label, image and description label, image and description
label, image and description label, image and description
谢谢。
定义一个辅助类,它将两个实体包装在一个对象中:
public class DoubleItem{
private String label;
private String imageUrl;
private String description;
private String label2;
private String imageUrl2;
private String description2;
//Getters & setters
}
然后在您的托管bean初始化中,您可以从当前列表转换为List<DoubleItem>
,因此您可以在视图中迭代它:
<p:dataTable value="#{myBean.doubleItemList}" var="doubleItem">
<p:column>#{doubleItem.label}</p:column>
<p:column>#{doubleItem.imageUrl}</p:column>
<p:column>#{doubleItem.description}</p:column>
<p:column>#{doubleItem.label2}</p:column>
<p:column>#{doubleItem.imageUrl2}</p:column>
<p:column>#{doubleItem.description2}</p:column>
</p:dataTable>
你应该放入datagrid。
<p:dataGrid value="#{myBean.myList}" columns="3" layout="grid" paginator="true" ...>
<p:column>MyLabel</p:column>
<p:column>MyImage</p:column>
<p:column>MyDescription</p:column>
</p:dataGrid>