我不知道为什么styleClass
默认情况下会忽略该属性(至少在 PrimeFaces 6.2 版之前),但您可以创建一个自定义渲染器,将其值附加到 HTML 输出。默认 PrimeFaces 渲染器的简单替换如下所示:
public class PanelGridBodyRowRenderer extends CoreRenderer implements HelperRowRenderer {
@Override
public void encode(FacesContext context, Row row) throws IOException {
ResponseWriter writer = context.getResponseWriter();
String rowStyleClass = PanelGrid.TABLE_ROW_CLASS;
String userRowStyleClass = row.getStyleClass();
if (userRowStyleClass != null) {
rowStyleClass = rowStyleClass + " " + userRowStyleClass;
}
writer.startElement("tr", row);
writer.writeAttribute("class", rowStyleClass, null);
writer.writeAttribute("role", "row", null);
renderChildren(context, row);
writer.endElement("tr");
}
}
org.primefaces.component.row.renderer
对于 PrimeFaces 6.2 版,您可以简单地在 WAR的包中创建此渲染器类。然后,类加载器将加载您的渲染器,而不是 PrimFaces JAR 中的相同渲染器类。
有关自定义组件和渲染器的更多信息,请参阅此答案。