¿Cómo paso los datos del modelo entre un estado de vista y un estado de acción en Spring Web Flow 2?

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

  •  03-07-2019
  •  | 
  •  

Pregunta

En el Flujo web a continuación, enlace datos de formulario a una variable de flujo (lifeCycleForm) en un evento de envío en estado de vista. He verificado que las propiedades de nombre, etiqueta y descripción se completan como se esperaba.

Sin embargo, cuando la expresión en el estado de acción se evalúa, las tres propiedades son nulas. Mi bean de formulario es serializable y solo estoy usando propiedades de cadena simples.

¿Qué estoy haciendo mal?

Soy bastante nuevo en Spring WebFlow, por lo que podría haberme perdido algo obvio.

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

Actualización: olvidé mencionar en mi publicación original que fueron mis pruebas de unidad las que fallaron. Desde entonces he aprendido que AbstractFlowExecutionTests no implementa el enlace de los parámetros de solicitud. Esto me parece un poco descuidado. He intentado la última versión nocturna de Spring WebFlow 2.0.4 y el comportamiento sigue siendo el mismo.

Actualización: Mis problemas son que las simulaciones de Spring WebFlow no simulan el envío de formularios.

Gracias de antemano, Brian

¿Fue útil?

Solución

Para gran disgusto, también descubrí recientemente que los simulacros de prueba de Webflow no usan el enlace de Spring. ¿Ha intentado ejecutar el flujo utilizando la depuración en un contenedor como Tomcat desde un IDE como Eclipse? Si no lo has hecho, será muy útil. Si necesita ayuda, puedo brindarle más consejos, pero para comenzar diría que descargue los complementos de Eclipse Web Standard Tools y Web Tools Project si aún no lo ha hecho.

Solo como una nota al margen, si realmente desea poder realizar la prueba de unión unitaria, también puede utilizar las FormActions de Spring Webflow 1 para enlazar con el objeto modelo, aunque hará que su flujo sea un poco más detallado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top