Comment transférer des données de modèle entre un état d'affichage et un état d'action dans Spring Web Flow 2

StackOverflow https://stackoverflow.com/questions/227532

  •  03-07-2019
  •  | 
  •  

Question

Dans le flux Web ci-dessous, je lie les données de formulaire à une variable de flux (lifeCycleForm) lors d'un événement de soumission dans l'état d'affichage. J'ai vérifié que les propriétés de nom, d'étiquette et de description sont toutes renseignées comme prévu.

Cependant, lorsque l'expression dans l'état d'action est évaluée, les trois propriétés sont nulles. Mon formulaire est sérialisable et j'utilise simplement des propriétés de chaîne simples.

Qu'est-ce que je fais mal?

Spring WebFlow est assez nouveau pour moi et j'ai peut-être oublié quelque chose d'évident.

<var name="lifeCycleForm" class="com.btmatthews.freelancer.lifecycle.portlet.LifeCycleForm" />

<view-state id="createLifeCycle" model="lifeCycleForm">
    <binder>
        <binding property="name" required="true" />
        <binding property="label" required="true" />
        <binding property="description" required="false" />
    </binder>
    <transition on="submit" to="createLifeCycleAction" />
    <transition on="cancel" to="lifeCycleCreationCancelled" bind="false" />
</view-state>

<action-state id="createLifeCycleAction">        
    <evaluate expression="lifeCycleService.createLifeCycle(lifeCycleForm.name, lifeCycleForm.label, lifeCycleForm.description, null, null)" />
    <transition on="success" to="lifeCycleCreated" />
    <transition on="failure" to="createLifeCycle" />
</action-state>

<end-state id="lifeCycleCreated" />

<end-state id="lifeCycleCreationCancelled" />

Mise à jour : j'ai omis de mentionner dans mon message initial que c’était mes tests unitaires qui avaient échoué. J'ai depuis appris que AbstractFlowExecutionTests n'implémentait pas la liaison des paramètres de requête. Cela me semble un peu un oubli. J'ai essayé la dernière version de Spring WebFlow 2.0.4 tous les soirs et le comportement reste le même.

Mise à jour: Mes problèmes sont que les simulacres Spring WebFlow ne simulent pas la soumission de formulaire.

Merci d'avance, Brian

Était-ce utile?

La solution

À un grand chagrin, j’ai récemment découvert que les simulacres de test Webflow n’utilisaient pas la liaison de Spring. Avez-vous essayé d'exécuter le flux en utilisant le débogage dans un conteneur tel que Tomcat à partir d'un IDE tel qu'Eclipse? Si vous ne l'avez pas déjà fait, ce sera très utile. Si vous avez besoin d’aide, je peux vous donner d’autres astuces, mais pour commencer, je vous conseille de télécharger les plug-in Eclipse Web Standard Tools et Web Tools Project si vous ne l’avez pas déjà fait.

En guise de remarque, si vous souhaitez vraiment pouvoir utiliser la liaison de test unitaire, vous pouvez également utiliser le formulaire Spring Webflow 1 FormActions pour établir une liaison avec l'objet de modèle, même si cela rendra votre flux légèrement plus détaillé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top