Ich versuche tatsächlich, eine benutzerdefinierte Composite-Tabellenkomponente zu erstellen, weil h: datatable oder p: datatable nicht meinen Anforderungen entsprechen. Nichtsdestoweniger soll es wie eine Dataset der Primzahlen verwendet werden. Nachdem ich JSF composite component childrens und Expose items of a list while iterating within composite component gefunden habe, sah ich die Ziellinie, aber jetzt steckte ich fest.Verwendung von insertChildren AND bekomme untergeordnete Attribute
Mein xhtml:
<h:body>
<sm:datatable mode="columntoggle" id="mytable" value="#{managerBean.objects}" var="object">
<sm:column header="KeyHeader" property="key">
<h:outputText value="#{object.key}"/>
</sm:column>
<sm:column header="ValueHeader" property="value">
<h:outputText value="#{object.value}"/>
</sm:column>
</sm:datatable>
</h:body>
Und das ist die Datentabelle Verbund:
<cc:interface>
<cc:attribute name="id" />
<cc:attribute name="mode" />
<cc:attribute name="var" />
<cc:attribute name="value" type="java.util.List"/>
</cc:interface>
<cc:implementation>
<table data-role="table" data-mode="#{cc.attrs.mode}" id="my-table">
<thead>
<tr>
<ui:repeat value="#{component.getCompositeComponentParent(component).children}" var="child">
<th>
<h:outputText value="#{child.attrs.header}"/>
</th>
</ui:repeat>
</tr>
</thead>
<tbody>
<ui:repeat value="#{cc.attrs.value}" var="object">
<tr>
<c:forEach items="#{cc.children}" var="child" varStatus="loop">
<cc:insertChildren/>
</c:forEach>
</tr>
</ui:repeat>
</tbody>
</table>
</cc:implementation>
Und das ist die Säule Verbund
<cc:interface>
<cc:attribute name="header" />
<cc:attribute name="property" />
<cc:facet name="content"/>
</cc:interface>
<cc:implementation>
<td><cc:insertChildren/></td>
</cc:implementation>
Thead Werke standalone
tbody wie
Putting sie zusammen eigenständige Werke über I tbody nur bekommen. thead bleibt immer leer Irgendwelche Vorschläge? Vielen Dank für Ihre Hilfe im Voraus!
'
Antwort
#{cc.children}
, die äquivalent ist#{component.getCompositeComponentParent(component).children}
sollten beide arbeiten, aber aus irgendeinem Grund nicht in einigen Versionen arbeiten, ich denke, dieser Teil von JSF noch wenig fehlerhaft ist.Haben Sie
versucht, auch dieses Thema beziehenBitte,
In JSF2, how to know if composite component has children?
Quelle
2013-03-07 03:44:56
Ich habe es gerade ausprobiert, funktioniert aber nicht wirklich Nur Kind ist die Implementierung selbst. Deshalb ist die Ausgabe für _ # {Kind} _ _ \t [email protected] \t \t [email protected] \t