Lorsque j'utilise Spring Web Flow 1, comment puis-je ajouter un objet à une liste dans un bean?
-
05-07-2019 - |
Question
J'ai un flux Web où je dois capturer des données sur l'un des écrans.
Ces données sont stockées dans un objet qui sera conservé dans une liste du bean.
Lors de la soumission de la page, je souhaite pouvoir créer un objet et l'ajouter à la liste du bean.
Est-ce possible?
Merci
La solution 2
Finalement, j'ai réussi à le faire fonctionner avec les flux suivants.
J'ai créé un haricot auxiliaire destiné à contenir une fonction permettant de l'ajouter à la liste conservée dans le formulaire.
<view-state id="page2" view="page2">
<transition on="save" to="addToList">
<action bean="form" method="bindAndValidate"/>
</transition>
<transition on="back" to="page1">
<action bean="formAction" method="bindAndValidate"/>
</transition>
<transition on="next" to="page3">
<action bean="formAction" method="bindAndValidate"/>
</transition>
</view-state>
<action-state id="addToList">
<bean-action bean="helperbean" method="addToList">
<method-arguments>
<argument expression="conversationScope.form"/>
</method-arguments>
</bean-action>
<transition on="success" to="page2"/>
</action-state>
Il affiche ensuite à nouveau la page d'origine
Autres conseils
Vous devez faire quelques choses:
-
Placez un objet dans la portée du flux (ou ajoutez un champ supplémentaire sur un objet existant tel que votre formulaire) pour donner un chemin de liaison fixe à l'objet que vous souhaitez modifier. Si vous ne le faites pas, vous ne pourrez pas tirer parti de la liaison de données de Spring.
-
Écrivez une méthode sur votre FormAction pour placer cet objet dans votre liste et configurez cette méthode pour qu'elle s'exécute sur la transition suivie lors de l'envoi de la page en cours. Cette méthode peut nettoyer les ressources de niveauscopescope utilisées dans (1) selon les besoins.
Modifier La documentation Webflow fournit de bons exemples sur la manière d'exécuter des actions sur des transitions. Pour la version 2 de Webflow, consultez Exécution des transitions de vue et Exécution d'actions . Pour la version 1, voir Définition du flux .
Je voudrais stocker le haricot (et la liste) dans la session.