 <p>I had the same problem : primefaces (or richfaces) offers rowspan only for header and footer.</p> <p>Then I tried to use the icefaces <code>ace:datatable</code> component and it run by adding only one attribute in the colum(s) you want to be "rowspanable" : <code>ace:column</code> : <code>groupBy="#{bean.field}"</code>.</p> <p>You give as usual a list of rows and this component generates all rowspan automatically (I think by autodetecting neigbourhood of equals values) in the generated html table.</p> <p>It runs altogether with primefaces components : at this moment I have primefaces outputlabel in the icefaces datatable cells ant this icefaces datatable is inside a primefaces panel.</p>