Appendix A. Flow Definition Language 1.0 to 2.0 Mappings

The flow definition language has changed since the 1.0 release. This is a listing of the language elements in the 1.0 release, and how they map to elements in the 2.0 release. While most of the changes are semantic, there are a few structural changes. Please see the upgrade guide for more details about changes between Web Flow 1.0 and 2.0.

Table A.1. Mappings

SWF 1.0 SWF 2.0 Comments
action * use <evaluate />
  bean   *  
  name   *  
  method   *  
action-state action-state  
  id   id  
  *   parent  
argument * use <evaluate expression="func(arg1, arg2, ...)"/>
  expression    
  parameter-type    
attribute attribute  
  name   name  
  type   type  
  value   value  
attribute-mapper * input and output elements can be in flows or subflows directly
  bean   * now subflow-attribute-mapper attribute on subflow-state
bean-action * use <evaluate />
  bean   *  
  name   *  
  method   *  
decision-state decision-state  
  id   id  
  *   parent  
end-actions on-end  
end-state end-state  
  id   id  
  view   view  
  *   parent  
  *   commit  
entry-actions on-entry  
evaluate-action evaluate  
  expression   expression  
  name   * use <evaluate ...> <attribute name=”name” value="..." /> </evaluate>
  *   result  
  *   result-type  
evaluation-result * use <evaluate result="..." />
  name   *  
  scope   *  
exception-handler exception-handler  
  bean   bean  
exit-actions on-exit  
flow flow  
  *   start-state  
  *   parent  
  *   abstract  
global-transitions global-transitions  
if if  
  test   test  
  then   then  
  else   else  
import bean-import  
  resource   resource  
inline-flow * convert to new top-level flow
  id   *  
input-attribute input  
  name   name  
  scope   * prefix name with scope <input name="flowScope.foo" />
  required   required  
  *   type  
  *   value  
input-mapper * inputs can be in flows and subflows directly
mapping input or output  
  source   name or value name when in flow element, value when in subflow-state element
  target   name or value value when in flow element, name when in subflow-state element
  target-collection   * no longer supported
  from   * detected automatically
  to   type  
  required   required  
method-argument * use <evaluate expression="func(arg1, arg2, ...)"/>
method-result * use <evaluate result="..." />
  name   *  
  scope   *  
output-attribute output  
  name   name  
  scope   * prefix name with scope <output name="flowScope.foo" />
  required   required  
  *   type  
  *   value  
output-mapper * output can be in flows and subflows directly
render-actions on-render  
set set  
  attribute   name  
  scope   * prefix name with scope <set name="flowScope.foo" />
  value   value  
  name   * use <set ...> <attribute name=”name” value="..." /> </set>
  *   type  
start-actions on-start  
start-state * now <flow start-state="...">, or defaults to the first state in the flow
  idref   *  
subflow-state subflow-state  
  id   id  
  flow   subflow  
  *   parent  
  *   subflow-attribute-mapper  
transition transition  
  on   on  
  on-exception   on-exception  
  to   to  
  *   bind  
  *   validate  
  *   history  
value value  
var var  
  name   name  
  class   class  
  scope   * always flow scope
  bean   * all Spring beans can be resolved with EL
view-state view-state  
  id   id  
  view   view  
  *   parent  
  *   redirect  
  *   popup  
  *   model  
  *   history  
* persistence-context  
* render  
  *   fragments  
* secured  
  *   attributes  
  *   match