2010-08-09 5 views
2

question de base:JSF2: ui: include: ID composant doit être unique

Y compris une page, qui contient un composant avec id composant, plusieurs fois ne peuvent pas faire. Mais comment puis-je avoir une référence à ce composant qui contient la page?

Exemple:

included.xhtml

.... 
<h:form id="foo"/> 
.... 
<!-- here i need reference to foo component of this page --> 

index.xhtml

.... 
<ui:include src="included.xhtml" /> 
<ui:include src="included.xhtml" /> 
<ui:include src="included.xhtml" /> 
+0

où faire vous voulez le référencer? Je veux dire que vous essayez de vous y référer de javascript? –

+0

J'utilise Primefaces, et je veux utiliser l'attribut "mise à jour" d'un appel ajax à partir d'un bouton. Cet attribut a besoin du clientId comme valeur. J'essaie de faire ce sujet pas primefaces spécifique. –

Répondre

8

Avec ui:include l'id sera dupliqué.

Vous pouvez passer un paramètre à votre xhtml inclus et préfixe votre identifiant

<ui:include src="included.xhtml"> 
    <ui:param name="idPrefix" value="myFormIdPrefix"/> 
</ui:include> 

Dans le xhtml inclus

<h:form id="#{idPrefix}_foo"/> 

Maintenant, il est possible de référencer l'identifiant comme #{idPrefix}_foo

+0

Merci pour votre réponse! Bien que j'ai besoin de plus de logique pour ce que mon ui: liste d'inclusion est variable ... –

+0

+1 belle astuce à savoir – ewernli