Используйте атрибуты columnClasses и rowClasses, чтобы дать каждой ячейке уникальный класс
Например:
<t:panelGrid columns="4" columnClasses="a,b,c,d" rowClasses="x,y,z">
</t:panelGrid>
columnClasses
Атрибут columnClasses принимает список с разделителями-запятымиКлассы стилей CSS, которые будут применены к столбцам таблицы.Классы стилей для отдельного столбца также могут быть определены в списке, разделенном пробелами.Класс стиля применяется к столбцу таблицы в качестве значения для атрибута класса отображаемого элемента td или th.
Алгоритм, используемый для применения классов стиля CSS к столбцам таблицы, прост.В процессе рендеринга таблицы классы стилей применяются к столбцам по одному, пока (а) не останется больше столбцов для отображения или (б) не будет больше классов стилей для применения.
* If (a) happens at the same time as (b), the next row in the table is rendered.
* If (a) happens before (b), the remaining style classes are ignored.
* If (b) happens before (a), the remaining columns will not have style classes.
rowClasses
Атрибут rowClasses принимает разделенный запятыми список классов стилей CSS, которые будут применены к строкам таблицы.Классы стилей для отдельной строки также могут быть определены в списке, разделенном пробелами.Класс стиля применяется к строке таблицы в качестве значения для атрибута класса отображаемого элемента tr.
Классы стиля применяются к строкам в том же порядке, в котором они определены.Например, если есть два класса стилей, первый применяется к первой строке, второй применяется ко второй строке, первая применяется к третьей строке, вторая применяется к четвертой строке и так далее.Список стилей зацикливается с самого начала до тех пор, пока не останется больше строк для отображения.
В моем стандартном проекте JSF (Mojarra 2.0.3)
Этот тег генерирует:
<h:panelGrid border="1"
columns="4"
columnClasses="a,b,c,d"
rowClasses="x,y,z">
<h:outputText value="ax"/>
<h:outputText value="bx"/>
<h:outputText value="cx"/>
<h:outputText value="dx"/>
<h:outputText value="ay"/>
<h:outputText value="by"/>
<h:outputText value="cy"/>
<h:outputText value="dy"/>
<h:outputText value="az"/>
<h:outputText value="bz"/>
<h:outputText value="cz"/>
<h:outputText value="dz"/>
</h:panelGrid>
Этот HTML-код:
<table border="1">
<tbody>
<tr class="x">
<td class="a">ax</td>
<td class="b">bx</td>
<td class="c">cx</td>
<td class="d">dx</td>
</tr>
<tr class="y">
<td class="a">ay</td>
<td class="b">by</td>
<td class="c">cy</td>
<td class="d">dy</td>
</tr>
<tr class="z">
<td class="a">az</td>
<td class="b">bz</td>
<td class="c">cz</td>
<td class="d">dz</td>
</tr>
</tbody>
</table>