我对复合组件有一点问题。该组件的实现如下所示:
<composite:implementation>
<h:outputStylesheet name="foo.css" library="bar"/>
<div id="#{cc.clientId}">
<composite:insertChildren/>
</div>
</composite:implementation>
它被动态地包含在一个 facelet 页面中,该页面包含这个带有 JSTL 核心标签的组件。facelet 页面类似于以下页面。
<h:panelGroup id="viewport" layout="block">
<c:if test="#{controller.object != null}">
<c:forEach items="#{controller.object.elements}" var="element">
<c:if test="#{element.type == 'type1'}">
<my:componentTypeOne id="#{element.id}"/>
</c:if>
<c:if test="#{element.type == 'type2'}">
<my:componentTypeTwo id="#{element.id}"/>
</c:if>
</c:forEach>
</c:if>
</h:panelGroup>
因此,当我只渲染viewport
页面时,组件被渲染,但没有在复合组件中定义样式表my:component
。有没有办法在不渲染整个页面的情况下即时包含样式表?
编辑:示例代码的扩展..