这个问题是关于p:dataTable标头操作。
我想找到一种直接从java代码操作头文件p:dataTable(primefaces)的方法,做一下这样的事情:
<p:dataTable id="genericReport" value="#{mb.lazyData}" >
<!-- header -->
<p:columnGroup type="header" binding="#{mb.header}" >
</p:columnGroup>
<!-- some data -->
<p:column>
<h:outputText value="..." />
</p:column>
</p:dataTable>
其中#{mb.header}“是从XML读取的java代码,由树通过XPath操纵。
我想这样做,因为我有很多带有复杂标题的报告;我的意思是,不同的水平,不同的细胞结合。
更新
此标头必须由xml配置生成。这是XML。
<header id="report">
<column text="Granpa Pather">
<column text="Pather 1">
<column text="Child 1">
<column text="Grand Child 1" />
<column text="Grand Child 2" />
</column>
<column text="Child 2" />
<column text="Child 3" />
</column>
<column text="Pather 2">
<column text="Child 4" />
<column text="Child 5" />
</column>
<column text="Pather 3">
<column text="Child 6" />
<column text="Child 7" />
<column text="Child 8" />
</column>
</column>
</encabezado
colspan和rowspan是通过树理论计算的,不是问题。
我使用XPath和树操作在PDF和XLS(Itext和ApachePOI,尊重)中做到这一点。我的问题在于HTML操作起来并不容易。我认为可以使用API Primefaces。