Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在SpringWebFlow2中,如何在视图状态和动作状态之间传递模型数据_Java_Spring_Spring Webflow - Fatal编程技术网

Java 在SpringWebFlow2中,如何在视图状态和动作状态之间传递模型数据

Java 在SpringWebFlow2中,如何在视图状态和动作状态之间传递模型数据,java,spring,spring-webflow,Java,Spring,Spring Webflow,在下面的Web流中,我将表单数据绑定到视图状态下提交事件的流变量(lifeCycleForm)。我已验证名称、标签和描述属性是否按预期填充 但是,当对处于操作状态的表达式求值时,所有三个属性都为null。我的表单bean是可序列化的,我只使用简单的字符串属性 我做错了什么 我对SpringWebFlow还很陌生,所以我可能错过了一些明显的东西 <var name="lifeCycleForm" class="com.btmatthews.freelancer.lifecycle.portl

在下面的Web流中,我将表单数据绑定到视图状态下提交事件的流变量(lifeCycleForm)。我已验证名称、标签和描述属性是否按预期填充

但是,当对处于操作状态的表达式求值时,所有三个属性都为null。我的表单bean是可序列化的,我只使用简单的字符串属性

我做错了什么

我对SpringWebFlow还很陌生,所以我可能错过了一些明显的东西

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

更新:我在最初的帖子中忽略了提到,是我的单元测试失败了。我后来了解到AbstractFlowExecutionTests不实现请求参数的绑定。这对我来说似乎有点疏忽。我尝试了最新的nightly Spring WebFlow 2.0.4,其行为保持不变

更新:我的问题是SpringWebFlow模拟不会模拟表单提交

提前感谢,,
Brian

让我非常懊恼的是,我最近还发现Webflow测试模拟没有使用Spring的绑定。您是否尝试过在像Eclipse这样的IDE中,在像Tomcat这样的容器中使用调试来运行流?如果你没有,它将非常有用。如果您需要帮助,我可以提供进一步的提示,但首先我要说的是下载EclipseWeb标准工具和Web工具项目插件(如果您还没有)


作为旁注,如果您真的希望能够进行单元测试绑定,您还可以使用Spring Webflow 1 FormActions绑定到模型对象,尽管它会使您的流稍微更详细。

我唯一的建议是将LifeCycleForm作为一个完整的对象传递到lifeCycleService中(而不是一块一块)并通过调试查看该方法的效果…我没有立即发现您的流有任何错误,但我只使用了Webflow 1.0:(不幸的是,我已经尝试过了,并得到了相同的结果。感谢您的建议。尝试将调试断点放置在setter上,然后查看它们是否/在何处被击中。。。