1

我对复合组件有一点问题。该组件的实现如下所示:

<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。有没有办法在不渲染整个页面的情况下即时包含样式表?

编辑:示例代码的扩展..

4

0 回答 0