我知道我可以在jsf中使用一些facet变量,如下所示:
<h:dataTable>
<h:column>
<f:facet name="header">
<h:outputText value="Item Description" />
</f:facet>
<h:outputText value="#{item.description}" />
</h:column>
</h:dataTable>
有没有列出所有可用方面的文档?
我已经查看了
的源代码javax.faces.component.html.HtmlDataTable
但是在这里找不到方面的任何信息,在哪里定义?
答案 0 :(得分:1)
这些方面可由UIComponent#getFacets()
获得。
请注意,您需要从<h:column>
(HtmlColumn
; UIColumn
)获取代码段中的特定代码段,而不是<h:dataTable>
(HtmlDataTable
; UIData
)。
UIData table = getItSomehow();
for (UIComponent child : table.getChildren()) { // child == UIColumn.
Map<String, UIComponent> facets = child.getFacets();
UIComponent headerFacet = facets.get("header");
// ...
}
顺便说一句,查看源代码很有趣,但查看javadoc是最简单的第一步。它还列出了从超类继承的方法,否则这些方法在类的源中不会直接可见。在javadoc中搜索单词“facets”时,你会立即注意到自解释“getFacets()”方法。