複合コンポーネントに少し問題があります。このコンポーネントの実装は次のようになります。
<composite:implementation>
<h:outputStylesheet name="foo.css" library="bar"/>
<div id="#{cc.clientId}">
<composite:insertChildren/>
</div>
</composite:implementation>
これは、JSTLコアタグを持つこのコンポーネントを含むファセットページに動的に含まれます。フェイスレットページは次のようなものです。
<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
。ページ全体をレンダリングせずに、その場でスタイルシートを含める方法はありますか?
編集:サンプルコードの拡張。