Come faccio a passare i dati del modello tra uno stato di visualizzazione e uno stato di azione in Spring Web Flow 2

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

  •  03-07-2019
  •  | 
  •  

Domanda

Nel flusso Web di seguito associo i dati del modulo a una variabile di flusso (lifeCycleForm) su un evento di invio nello stato di visualizzazione. Ho verificato che il nome, l'etichetta e le proprietà della descrizione siano tutti compilati come previsto.

Tuttavia, quando viene valutata l'espressione nello stato dell'azione, tutte e tre le proprietà sono nulle. Il mio bean di modulo è serializzabile e sto solo usando semplici proprietà di stringa.

Cosa sto facendo di sbagliato?

Sono abbastanza nuovo con Spring WebFlow, quindi potrei aver perso qualcosa di ovvio.

<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" />

Aggiornamento: ho trascurato di menzionare nel mio post originale che sono stati i miei test unitari a fallire. Da allora ho appreso che AbstractFlowExecutionTests non implementa l'associazione dei parametri di richiesta. Mi sembra un po 'una svista. Ho provato l'ultima versione notturna di WebFlow 2.0.4 e il comportamento rimane lo stesso.

Aggiornamento: I miei problemi sono che le beffe di Spring WebFlow non simulano l'invio di moduli.

Grazie in anticipo, Brian

È stato utile?

Soluzione

Con grande dispiacere, ho anche scoperto di recente che i test di simulazione del flusso Web non usano l'associazione di Spring. Hai provato a eseguire il flusso utilizzando il debug in un contenitore come Tomcat da un IDE come Eclipse? In caso contrario, sarà molto utile. Se hai bisogno di aiuto, posso fornire ulteriori suggerimenti, ma per iniziare direi di scaricare i plug-in Eclipse Web Standard Tools e Web Tools Project se non l'hai già fatto.

Proprio come una nota a margine, se vuoi davvero essere in grado di eseguire il binding dell'unità di test, puoi anche utilizzare FormActions di Spring Webflow 1 per associare l'oggetto modello, anche se renderà il tuo flusso leggermente più dettagliato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top