2010-04-23 5 views
1

J'utilise JSF 2.0 et j'essaie de transmettre des valeurs entre différentes pages de mon application. La configuration est la suivante: J'ai une page appelée userSelect qui a un bean de sauvegarde userSelectBacking. Sur cette page, j'affiche une liste d'utilisateurs qui peuvent être sélectionnés et soumis en utilisant un bouton de commande h: lorsque la page est soumise, la navigation va sur une page userEdit.JSF, Comment définir une propriété dans une autre page/bean de sauvegarde, puis naviguer vers cette page?

J'ai une page appelée userEdit, qui a un bean backing userEditBacking qui affiche les informations pour un utilisateur et permet à cet utilisateur d'être édité.

J'aimerais passer l'utilisateur sélectionné de la page userSelect à la page userEdit. J'utilise actuellement f: setPropertyActionListener pour définir l'utilisateur dans ma sauvegarde UserEdit à partir de la page userSelect, mais lorsque je navigue jusqu'à la page userEdit, il perd les informations que j'ai définies.

Y at-il un moyen que je peux transmettre les valeurs entre les deux pages/beans backing?

grâce

Répondre

1

J'utilise actuellement f: setPropertyActionListener pour définir l'utilisateur dans mon soutien UserEdit de la page userSelect

Il devrait fonctionner. Cependant, lorsque je navigue jusqu'à la page userEdit, il perd les informations que j'ai définies. Cela se produira si la logique de chargement des données est incorrecte ou si vous déclenchez une redirection par la suite lorsque le bean a une portée de demande.

Pour corriger la logique de chargement des données, assurez-vous que dans le cas d'un bean de demande, le même modèle de données est conservé dans la requête suivante. Habituellement, vous utilisez le constructeur du bean ou le chargement paresseux dans le getter pour cela. Si ce n'est pas une option, vous devez placer le bean dans une portée un peu plus large, par ex. @ViewScope ou @SessionScope.

Pour résoudre le problème de redirection, ne lancez pas de redirection (par exemple, supprimez <redirect/> du dossier de navigation ou n'appelez pas ExternalContext#redirect()), ou placez le bean dans une étendue plus large.

+0

Merci! la redirection était en effet le problème! – kgrad

+0

De rien. – BalusC

+0

@BalusC - J'ai rencontré un nouveau problème, lorsque j'essaie de modifier l'entité utilisateur dans ma page userEdit, même si elle s'affiche correctement, j'obtiens une erreur que l'entité est nulle. J'utilise la liaison de valeur si cela fait une différence. Avez-vous une raison pour laquelle cela serait? – kgrad

Questions connexes