İçinde bir JSP 2.0 <ui:component>
var, içinde bir içerik ile ilgili özel bir kenarlık oluşturmak için bir Kompozit kullanan bir sütun ile bir <p:dataTable>
var. Şimdi içeriğinde bulunan ajax rendered özniteliğinde <p:dataTabe>
'u tanımlamam gerekiyor.Kompozitin ana Adlandırma Kabı'na nasıl erişilir?
<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>
Benim 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>
Benim fikrim boş olması
update=":#{component.namingContainer.parent.namingContainer.clientId}:dateTable
Ama component.namingContainer.parent
dikişleri gibi bir şey kullanmaktı. Bu ifadelere <p:commandButton>
değiştirdiğinizde
: Liste tamamlandığında tanımlamak için fikrimi mybey: Sorunun ne hiçbir fikrim yok
Parent ClientId 1: [email protected]d957419
Parent ClientId 2: [email protected]
Parent ClientId 3: main_form:profilTabView:dataTable:0:borderBox
Parent ClientId 4:
Parent ClientId 5:
:
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}
Bu çıktıyı almak yanlış mı yoksa bazı hatalar mı yoksa daha iyi bir yolu var mı? (Ama dateTable için mutlak identifyer düzeltmek kullanamazsınız!)
Sürümleri: Primeface 3.2, Mojarra 2.1.6 GlassFish 3.1.2
Ben maalesef 'ui: component' etiketini kullanmıyorum; Genellikle, bir EL ifadesinden "# {cc.parent.id}" gibi bir üst adlandırma kapsayıcısından başvurabileceğiniz Kompozit Bileşenleri kullanırım. Ancak, "ebeveyni", EL ifade dilinde ayrılmış bir değişkendir. Bu nedenle, üst ad adlandırma kapsayıcısı kimliğini geri almak için # {parent.id} 'kadar basit olması gerekir. –
@maple_shaft: '', örtülü olarak kompozit bileşenler tarafından kullanılır. Bu nedenle, "" yerine doğrudan bildirmek daha temizdir. –
BalusC
Hangi JSF impl/sürüm ve PF sürümünü tam olarak kullanıyorsunuz? – BalusC