Sunday, 31 July 2011

Spring WebFlow- Hello WebFlow

Spring WebFlow is an extension point to spring MVC. In a typical spring mvc model, all requests are processed via controllers. In Spring Webflow, requests are processed through flow executor. Spring Web Flow (SWF) is a component of the Spring Framework's web stack focused on the definition and execution of UI flow within a web application. Spring Web Flow, like Spring, is a layered framework, packaged in a manner that allows teams to use the parts they need and nothing else. For example, one team might use Spring Web Flow in a Servlet environment with Spring MVC and thus require the Spring MVC integration. Another team might use SWF in a Portlet environment, and thus require the Portlet MVC integration. Another team might mix and match. A major benefit of SWF is that it allows you to define reusable, self-contained controller modules that can execute in any environment. Spring Web Flow allows developers to build reusable, self-contained controller modules called flows. A flow defines a user dialog that responds to user events to drive the execution of application code to complete a business goal.

For creating this example,i refereed Spring Web flow tutorial.

In Web.xml,
    <!-- Map all spring requests to the DispatcherServlet for handling -->

In HelloWebFlow-Servlet.xml

<!-- Map paths directly to view names without controller processing. Use the view-name attribute if necessary: by convention the view name equals the path without the leading slash -->
   <mvc:view-controller path="/" view-name="index" />
<!-- Maps request paths to flows in the flowRegistry; e.g. a path of /hello looks for a flow with id "hello". -->
    <bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
        <property name="order" value="-1"/>
        <property name="flowRegistry" ref="flowRegistry" />
<!-- Dispatches requests mapped to flows to FlowHandler implementations -->
<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter">
    <property name="flowExecutor" ref="flowExecutor" />

<!-- Executes flows: the central entry point into the Spring Web Flow system -->
    <webflow:flow-executor  id="flowExecutor"/>
    <!-- The registry of executable flow definitions -->
    <webflow:flow-registry id="flowRegistry">
        <webflow:flow-location path="/WEB-INF/flows/hello.xml" />

No comments:

Post a Comment