2010-03-26 3 views
1

J'apprends les facelets et Seam et je suis confronté au problème suivant: J'ai 2 fichiers xhtml, l'un inclut l'autre et chacun a son propre composant Seam comme backing bean. Je veux envoyer et objecter au facelet inclus et obtenir cet objet dans le backing bean correspondant au facelet inclus. Je vais prendre un exemple pour mieux expliquer la situation:Comment obtenir la valeur de ui: param dans Javabean

  • registration.xhtml avec le composant Seam comme backing bean Registration.java. Dans cette classe j'ai un objet de type Person
  • address.html avec le composant Seam comme backing bean Address.java. Dans cette classe, je veux obtenir l'objet Person du composant Registration et définir l'adresse.
  • registration.xhtml comprend le address.xhtml et passe un objet en utilisant

Comment obtenir cet objet dans le haricot d'adresse? Sera la même référence de l'objet du bean Registration? ui: param est la solution de passer cet objet ou il y a une autre solution pour cela? (peut-être f: attribut, mais même dans ce cas comment obtenir l'objet en bean)

Cet exemple est simple et pas forcément réaliste mais j'ai un problème similaire et je ne sais pas comment le résoudre.

Merci d'avance.

+0

@mihaela Si vous voyez une bonne réponse, UPvote. –

Répondre

1

Vous pouvez utiliser une action Page câbler votre haricot

<page view-id="/registration.xhtml"> 
    <action execute="#{registrationBackingBean.wire}"/> 
</page> 

...

@Name("registrationBackingBean") 
public class RegistrationBackingBean { 

    @In(required=false) 
    private Person person; 

    @In(required=false) 
    private Address address; 

    public void wire() { 
     person.setAddress(address); 
    } 

} 

Si vous voulez fil lors d'une demande initiale (GET), procédez comme suit

<page view-id="/registration.xhtml"> 
    <action execute="#{registrationBackingBean.wire}" if="#{empty param['javax.faces.ViewState']}"/> 
</page> 
+1

AFAIK, le a un attribut sur-publication. Vous pouvez le définir sur false, au lieu de vérifier if = "# {empty param ['javax.faces.ViewState']}". –

+0

Eh bien, je voulais dire

+0

@Petar Minchev Bon à savoir. Je vous remercie! Quelle version Seam le supporte-t-il? –

Questions connexes