Wie greife ich auf den übergeordneten Namenscontainer von Composite zu?
Ich habe eine JSP 2.0<ui:component>
, innerhalb dessen ist a<p:dataTable>
mit einer Spalte, die eine Zusammenstellung verwendet, um einen speziellen Rahmen für einen bestimmten Inhalt zu erstellen. Jetzt muss ich das identifizieren<p:dataTabe>
in einem Ajax-gerenderten Attribut, das sich im Inhalt befindet.
<ui:component>
<p:dataTable id="dataTable" var="userItem" ... />
<p:column>
<my:borderBox id="borderBox">
<p:commandButton
action="#{userController.doDelete(userItem.id)}"
value="delete"
update="?????"/> <!-- How to address the dateTable? -->
</my:borderBox>
</p:column>
</p:dataTable>
<ui:component>
Meine BorderBox:
<html xmlns:composite="http://java.sun.com/jsf/composite" ...>
<composite:interface>
<composite:attribute name="styleClass" default="" type="java.lang.String"/>
</composite:interface>
<composite:implementation>
<h:panelGroup ...>
...
<composite:insertChildren/>
</h:panelGroup>
</composite:implementation>
Meine Idee war, so etwas zu benutzen
update=":#{component.namingContainer.parent.namingContainer.clientId}:dateTable
Abercomponent.namingContainer.parent
Nähte null zu sein.
Wenn ich das ersetze<p:commandButton>
mit diesen Aussagen:
Parent ClientId 1: #{component}
Parent ClientId 2: #{component.namingContainer}
Parent ClientId 3: #{component.namingContainer.clientId}
Parent ClientId 4: #{component.namingContainer.parent}
Parent ClientId 5: #{component.namingContainer.parent.namingContainer}
Ich bekomme diese Ausgabe:
Parent ClientId 1: javax.faces.component.html.HtmlPanelGroup@3d957419
Parent ClientId 2: javax.faces.component.UINamingContainer@23db9e8f
Parent ClientId 3: main_form:profilTabView:dataTable:0:borderBox
Parent ClientId 4:
Parent ClientId 5:
Ich habe keine Ahnung, was das Problem ist: meine Idee, die Liste zu identifizieren, ist komplett falsch oder es gibt einen Fehler oder es gibt einen besseren Weg? (Ich kann jedoch keinen festen absoluten Bezeichner für die dateTable verwenden!)
Versionen: Primeface 3.2, Mojarra 2.1.6 auf Glassfish 3.1.2