我对复合组件有点问题。该组件的实现如下:
<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
中定义样式表。有没有办法在不渲染整个页面的情况下动态包含样式表?
编辑:示例代码的扩展名。