Struts 2: paramètres entre les Actions
Ma question est la suivante:
J'ai besoin de passer un paramètre (par exemple ID ) quand j'ai fini un formulaire et de l'action enregistrez le formulaire de valeurs, ce sera avec impatience le résultat = "réussite" et j'ai besoin que l'action qui sera appel dans le succès viennent avec l'ID et d'autres paramètres pour une utilisation ultérieure dans le formulaire suivant pour enregistrer cette information (info-form2 et info.form1)...
par exemple:
FORM1 ( UTILISATEUR ) ==== "success "" ====> FORM2 ( ADRESSE )
userForm.html ===================> addressForm.le html?user_id=...X(où X : Id passé lancer de UserAction (méthode:save) pour AddressAction (méthode:newAddress))
Veuillez je vous remercie de votre aide
Merci d'avance
OriginalL'auteur | 2009-04-24
Vous devez vous connecter pour publier un commentaire.
Vous avez utilisé le mot "avant", mais il semble que vous voulez aller sur une nouvelle page (address.html) pour recueillir plus d'informations sur l'adresse. Si c'est le cas, vous avez besoin de rediriger vers l'adresse de la page après l'action de l'utilisateur complète.
${Idutilisateur} la syntaxe d'appel getUserId sur votre UserAction et passer ce paramètre comme vous l'a montré dans votre question: addressForm.le html?user_id=X.-collecte de l'adresse peut avoir un succès résultat qui va à addressForm.html. Docs ici. Si vous souhaitez éviter d'utiliser une autre action, vous pouvez essayer de en utilisant le type de résultat="redirect" et de transmettre les choses à travers que les.
Si vous voulez vraiment de l'avant, vous pouvez utiliser l'action de chaînage. C'est découragé par Ted Husted sur le Struts2 équipe mais il peut travailler pour vous.
Au lieu de l'action de chaînage, essayer de mettre tout le code de remplir cette demande, en une seule action et l'utilisation aide ou de classes de service pour l'Utilisateur et l'Adresse de séparer et de réutiliser le code au lieu de l'action de "chaînage".
...d'autres idées pour mon problème est: je m obtenir la valeur de l'id, plus tard, d'économiser de l'objet UTILISATEUR ...ce code est généré par hibernate à l'objet et au plus tard cet objet aura l'identifiant généré.... mais j'ai besoin de cet IDENTIFIANT généré pour passer à l'autre ...mais il semble que l'ID n'est pas généré pendant que la méthode de sauvegarde est en cours d'exécution.... :S ... toute aide, je serai heureux!
J'ai le même problème.. il semble vide ou null lorsque j'essaie de passer la variable de cette façon.. si, au lieu de cela, j'essaie de <param name="userId">1111</param> puis il travaille
Salut les gars, merci pour les upvotes. Il n'y a pas suffisamment d'informations pour vous aider les gars plus précisément... 🙁 scénario le Plus probable, assurez-vous que votre UserAction classe a une "Chaîne de getUserId()" la méthode, pas de remplacements.
comme une question de fait, @Barett, il y a plus d'informations à propos de mon problème ici, et aussi, la solution qui a fonctionné pour moi: stackoverflow.com/questions/14213967/...
OriginalL'auteur Barett
Pas très clair ce que vous voulez faire.
Ressemble après le succès de l'exécution d'une action, la demande sera transmise à une autre action. Dans la première action que vous voulez passer le paramètre ID et l'utiliser que dans le 2ème action. Depuis les deux actions se font dans la même demande d'appel vous pouvez enregistrer l'ID de paramètre dans la requête comme ceci
demande.setAttribute("ID", iDValueObject);
Dans la seconde action, vous pouvez extraire la valeur de l'ID comme ceci
demande.getAttribute("ID");
OriginalL'auteur Bhushan Bhangale
Cela devrait fonctionner:
OriginalL'auteur Rahul Saini