Starting with version 2.1 Web Flow uses the Spring Expression Language (Spring EL).
Spring EL was created to provide is a single, well-supported expression language for use across all the products in the Spring portfolio.
It is distributed as a separate jar org.springframework.expression in the Spring Framework.
Existing applications will need to remove dependencies on org.jboss.el or org.ognl and use org.springframework.expression instead.
See the section below on EL Portability for other notes on upgrading.
In Web Flow 2.0 Unified EL was the default expression language with jboss-el as the implementation.
Use of Unified EL also implies a dependency on el-api although that is typically provided by your web container.
Tomcat 6 includes it, for example.
Spring EL is the default and recommended expression language to use.
However it is possible to replace it with Unified EL if you wish to do so.
You need the following Spring configuration to plug in the WebFlowELExpressionParser to the flow-builder-services:
<webflow:flow-builder-services expression-parser="expressionParser"/>
<bean id="expressionParser" class="org.springframework.webflow.expression.el.WebFlowELExpressionParser">
<constructor-arg>
<bean class="org.jboss.el.ExpressionFactoryImpl" />
</constructor-arg>
</bean>
Note that if your application is registering custom converters it's important to ensure the WebFlowELExpressionParser is configured with the conversion service that has those custom converters.
<webflow:flow-builder-services expression-parser="expressionParser" conversion-service="conversionService"/>
<bean id="expressionParser" class="org.springframework.webflow.expression.el.WebFlowELExpressionParser">
<constructor-arg>
<bean class="org.jboss.el.ExpressionFactoryImpl" />
</constructor-arg>
<property name="conversionService" ref="conversionService"/>
</bean>
<bean id="conversionService" class="somepackage.ApplicationConversionService"/>
OGNL is the third supported expression language. OGNL is the EL most familiar to Web Flow version 1.0 users. Please refer to the OGNL language guide for specifics on its EL syntax. If you wish to use OGNL this is the Spring configuration necessary to plug it in:
<webflow:flow-builder-services expression-parser="expressionParser"/>
<bean id="expressionParser" class="org.springframework.webflow.expression.WebFlowOgnlExpressionParser"/>
Note that if your application is registering custom converters it's important to ensure the WebFlowOgnlExpressionParser is configured with the conversion service that has those custom converters.
<webflow:flow-builder-services expression-parser="expressionParser" conversion-service="conversionService"/>
<bean id="expressionParser" class="org.springframework.webflow.expression.WebFlowOgnlExpressionParser">
<property name="conversionService" ref="conversionService"/>
</bean>
<bean id="conversionService" class="somepackage.ApplicationConversionService"/>