Mon utilisation commune pour mon application Struts2 est que j'ai des actions qui collectent des données qui sont présentées sur une page JSP. Je vais appeler ces vues-actions.Struts2 RedirectAction: Params Interceptor et Workflow?
Mais j'ai aussi des actions logiques, qui "font" quelque chose en arrière-plan (comme enregistrer un utilisateur). Ceux-ci peuvent également avoir un bean qui doit être affiché sur une JSP, mais j'ai besoin de rediriger le résultat vers l'une des actions-vues. Malheureusement, le bean dont j'ai besoin depuis la première action n'est pas transféré dans ValueStack, mais seulement les valeurs des getters de l'action view. Exemple:
<action name="mailConfirm" class="de.abelssoft.updateyeti.Frontend.MailConfirmer">
<result name="login" type="redirectAction">
<param name="actionName">register</param>
<param name="email">${person.email}</param>
</result>
<result name="input" type="redirectAction">
<param name="actionName">register</param>
</result>
</action>
Quel est le motif qui me manque ici? Ou dois-je stocker tout ce dont j'ai besoin dans le contexte de la réponse?
Ce n'est pas très clair. Qu'entendez-vous par "une action qui fait quelque chose en arrière-plan"? Une action exécute une logique en réponse à une requête web, toujours. Pourriez-vous élaborer votre scénario ou donner un exemple? – leonbloy
Exemple: un utilisateur soumet un commentaire dans un formulaire à l'action submitComment. L'URL appelée est "submitComment.action? Comment = thisisacomment". Un champ de l'action submitComment est défini avec la chaîne du commentaire, de sorte que le message "Votre commentaire 'thisisacomment' a été ajouté". Un autre exemple serait "[email protected]" ci-dessus. Une erreur de base de données se produit et l'utilisateur doit être informé à ce sujet. Le résultat de ces actions sont d'autres actions qui affichent le JSP affiché. Je veux que les messages/objets de la première action soient disponibles pour la seconde action. – Akku
Désolé. Vos exemples ne clarifient pas grand chose, pour moi au moins. "Le résultat de ces actions sont d'autres actions qui rendent le JSP visualisé" - normalement vous n'avez pas d'action dédiée à l'affichage des résultats, cela va à l'encontre de MVC. Les résultats (99% du temps) sont affichés dans une page JSP qui lit les données de l'action exécutée. Le résultat type = "redirectAction" devrait être rare dans une application Struts2. Je recommande "Struts2 en action" de Mannings – leonbloy