2010-02-12 4 views
2

Je suis nouveau à JSF et je suis en train d'afficher un composant JSF2 avec ui: comprennentPouvons-nous utiliser ui: include dans JSF pour afficher un composant?

<ui:include src="myComponent.xhtml"> 
    <ui:param name="attr" value="aValue"/> 
</ui:include> 

Le composant est affiché avec succès mais le PARAM est pas passé à la composante JSF2. l'attribut attr est défini dans l'interface du composant.

Il fonctionne si j'utilise mon composant cette façon:

<ez:myComponent attr="aValue"/> 

Le point en utilisant ui: include est d'utiliser quelque chose comme ça:

<ui:include src="#{componentName}"/> 

que je fais quelque chose qui est pas pris en charge ou existe-t-il un autre moyen d'afficher mon composant et de remplir les paramètres?

J'utilise GlassFish v3.

Merci d'avance.

+0

Pas tout à fait sûr de ce que vous demandez. Essayez-vous d'utiliser ? Si oui, quel est le reste de votre code et comment attendez-vous de voir le jeu de paramètres? – Damo

+0

Désolé si ce n'est pas clair. Je veux inclure dynamiquement certains composants JSF2 et je me demandais si c'était possible. Le nom du composant est fourni par un bean de mon propre. Lors de mes tests si je déclare mon composant comme , le composant est affiché correctement. Mais je ne peux pas afficher dynamiquement un composant avec cette sémantique. J'ai donc essayé avec ui: include et le composant est affiché mais la valeur de l'attribut "attr" n'est pas passée au composant. Pour le composant, disons qu'il fait juste . – Awano

Répondre

1

de ma compréhension de ui: PARAM vous devriez être en mesure de acess la valeur de l'interface: param en myComponent.xhtml en utilisant # {attr} qui, en utilisant le nom de param Check this out https://facelets.dev.java.net/nonav/docs/dev/docbook.html#template-param

+0

Eh bien j'ai essayé de mettre dans ui: param un nom de cc.attrs.attr afin qu'il corresponde à ce que mon composant utilise. Cela n'a pas fonctionné. Je suppose que ce que j'essaie de réaliser n'est tout simplement pas possible maintenant. – Awano

0

Based sur les commentaires dans la réponse de Inv3r53: Les périodes ont une signification spéciale dans le langage d'expression pour évaluer les chaînes d'expressions. Si vous voulez que votre page soit à la fois autonome et utilisé comme composant puis utilisez un c: set (JSF 2 doc) en dehors de vos étiquettes de composition pour définir cc.attrs.attr-attr. L'ensemble sera utilisé s'il est autonome, mais exclu lorsqu'il est inclus (seul le contenu entre les balises de composition est inclus).