Spring Webflow : comment puis-je passer un attribut à partir d'un flux à l'autre au cours d'une période de transition?
J'ai une action de l'état-qui évalue une expression et puis les transitions à plusieurs autres etats en fonction du résultat. L'un des états résultat est un subflow que les mains de contrôle à un autre flux, exemple;
<action-state id="doWork">
<evaluate expression="someAction.doWork(someInput)" />
<transition on="WORKSUCCESS" to="workSuccess" />
<transition on="WORKFAIL" to="fixFail" />
</action-state>
<subflow-state id="fixFail" subflow="someOtherPlace/someOtherWorkToFixFail">
<input name="someNumber" value="1" type="java.lang.Integer" />
<transition on="finish" to="workSuccess" />
</subflow-state>
Comme vous pouvez le voir, je peux passer une entrée dans la subflow via la balise d'entrée, mais ma question est comment puis-je spécifier et des pass entrées supplémentaires que je souhaite à présent si et seulement si la subflow-etat est appelé à partir de la transition WORKFAIL? Assumer la subflow-état "fixFail" peut être appelé à d'autres action-unis.
J'ai essayé des choses semblable à la suivante sans effet;
<action-state id="doWork">
<evaluate expression="someAction.doWork(someInput)" />
<transition on="WORKSUCCESS" to="workSuccess" />
<transition on="WORKFAIL" to="fixFail">
<attribute name="newInput" value="3000" type="java.lang.Integer" />
</transition>
</action-state>
<subflow-state id="fixFail" subflow="someOtherPlace/someOtherWorkToFixFail">
<input name="someNumber" value="1" type="java.lang.Integer" />
<input name="someNumber2" value="flowScope.newInput" type="java.lang.Integer" />
<transition on="finish" to="workSuccess" />
</subflow-state>
OriginalL'auteur Nick Foote | 2011-01-05
Vous devez vous connecter pour publier un commentaire.
Il y a trois façons dont vous pouvez faire cette. Vous pouvez le faire par le biais de la conversation, de la session ou que les attributs passé.
ConversationScope: Si un champ est dans le
conversationScope
le champ est visible de n'importe où dans l'écoulement ainsi que du flux de subflows (et de leurs transitions)SessionScope: (Probablement pas ce que vous
voulez) Est visible à tous les flux et
leur subflows
Enfin, vous pouvez passer sur le terrain comme un attribut dans la subflow état par exemple
Dans votre subflow xml
Dans cet exemple someNumber et someNumber deux sont passés en tant qu'attributs de votre subflow. Dans lequel vous pouvez évaluer
${someNumber}
Edit:
C'est pour répondre à votre question. Si vous souhaitez définir une variable dans la conversation portée sur une transition spécifique que vous pouvez faire:
Puis dans votre jsp
Foote prendre un coup d'oeil à mon edit pour répondre à votre question
Acclamations qui fonctionne un régal, tellement évident quand vous le voyez, j'ai essayé toutes sortes de choses comme ${converationScope.someVariable} dans la page jsp!!
OriginalL'auteur John Vint