I have a flow definition as flows
<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}
In view1.xhtml, I printed the two variables t1 and t2, but only 'test1' is printed. The second expression is ignored in transition. Why this happened?
When there is more than one action defined on a transition, if one returns an error result the remaining actions in the set will not be executed.
Now, also reading that section, I thought that only false
would be considered an error result, but perhaps it's anything other than "success" values. Your experience seems to bear that out. (I thought I had found a list somewhere of what return values are considered success and failure, but I'm not locating that right now.)
But, instead of <evaluate>
, can you use <set>
?
<transition on="login" to="view1" >
<set name="viewScope.t1" value="'test1'" />
<set name="viewScope.t2" value="'test2'" />
</transition>