我可以确定是否在复合组件中定义了JSF2构面吗?

Sha*_*man 6 java jsf facelets composite-component jsf-2

我正在创建一个JSF2 Facelets复合组件.如果定义了特定的facet,我希望HTML的呈现方式不同.有没有办法检查是否<f:facet name="..." />已为复合组件定义了?

Bal*_*usC 12

是的,您可以使用UIComponent#getFacets()它们的名称来获取所有方面的映射.所以你需要做的就是检查地图值是否为空.

<h:panelGroup rendered="#{not empty cc.facets.foo}">
    The facet with name "foo" has been definied for this composite!
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)