2010-10-25 6 views
2

Je suis passé de JSF 1.2 à JSF 2.0 et il semble que j'ai manqué quelque chose pendant le commutateur. Je suivant le scénario:Pass paramètres de demande via FacesContext

  1. Il y a un bouton sur une page avec actionListener réglé sur une gestion méthode de haricot qui ajoute un objet à la demande en appelant FacesContext.getCurrentInstance().getExternalContext().getRequestMap().put("foo", fooObject);
  2. Navigation est correctement traitée à d'autres page où se trouve un autre bean géré est initialisé.
  3. Le constructeur d'un autre bean géré tente d'extraire l'objet passé de la demande en appelant FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("foo"); et de s'initialiser avec les valeurs reçues.

Les deux beans gérés ont une portée de demande. Je remarque que le constructeur ne peut pas récupérer la valeur correcte de la requête car la carte de requête ne contient pas la clé "foo".

Qu'est-ce que je fais mal? Y a-t-il une meilleure manière de faire cela?

Merci d'avance.

Répondre

4

À l'étape 2, s'il y a une redirection, la portée de demande initiale est perdue car la redirection entraînerait une autre demande.

+0

Merci pour votre réponse. Oui, vous avez absolument raison. Il y avait élément dans faces-config.xml et quand je l'ai supprimé, les paramètres ont été correctement passés. – Vladimir

+0

Merci pour les connaissances. Très appréciée. –