spring webflow,评估转换中忽略的表达式

时间:2012-09-12 12:49:59

标签: spring spring-webflow spring-webflow-2

我有一个流程定义为流程

<view-state id="view1" view="/jsp/view1.xhtml">
    <transition on="login" to="view1" >
       <evaluate expression="'test1'" result="viewScope.t1"/>
       <evaluate expression="'test2'" result="viewScope.t2"/>
    </transition>
</view-state>

View1.xhtml:

${t1}<br/>
${t2}

在view1.xhtml中,我打印了两个变量t1和t2,但只打印了'test1'。转换中忽略第二个表达式。为什么会这样?

1 个答案:

答案 0 :(得分:2)

http://static.springsource.org/spring-webflow/docs/2.3.x/reference/htmlsingle/spring-webflow-reference.html#view-transitions

  

如果在转换上定义了多个操作,如果返回错误结果,则不会执行该组中的其余操作。

现在,在阅读该部分时,我认为只有false才会被视为错误结果,但也许除了“成功”值之外的任何其他内容。你的经历似乎证明了这一点。 (我以为我找到了一个列表,其中返回值被认为是成功和失败,但我现在没有找到它。)

但是,您可以使用<evaluate>而不是<set>吗?

<transition on="login" to="view1" >
    <set name="viewScope.t1" value="'test1'" />
    <set name="viewScope.t2" value="'test2'" />
</transition>