Spring Web Flow Skip to main content Learn more about Day 0 access to security patches via Enterprise support. Why Spring Overview Trending Generative AI Cloud Architecture Patterns Microservices Reactive Event Driven Application Types Web Applications Serverless Batch Learn Getting Started Quickstart Guides Academy Courses Get Certified Projects Overview Projects Spring Boot Spring Framework Spring Cloud Spring AI Spring Data Spring Integration Spring Batch Spring Security Foundational Projects Micrometer Reactor Development Tools Spring Tools Spring Initializr Resources Blog Release Calendar Version Mappings Release Highlights Security Advisories GitHub Orgs Spring Projects Spring Cloud Community Overview Events Authors Enterprise Overview Long-term Support Automated Upgrades Governance and Compliance Modern App Development All projects Micrometer Micrometer Context Propagation Micrometer Tracing Project Reactor Reactor Core Reactor Netty Spring Boot Spring Framework Spring Data Spring Cloud Spring AI Spring gRPC Spring Security Spring Authorization Server Spring for GraphQL Spring Session Spring Integration Spring HATEOAS Spring Modulith Spring REST Docs Spring Batch Spring AMQP Spring CredHub Spring for Apache Kafka Spring LDAP Spring for Apache Pulsar Spring Shell Spring Vault Spring Web Flow Spring Web Services Spring Web Flow4.0.1 Overview Learn Support Samples Spring Web Flow builds on Spring MVC and allows implementing the "flows" of a web application. A flow encapsulates a sequence of steps that guide a user through the execution of some business task. It spans multiple HTTP requests, has state, deals with transactional data, is reusable, and may be dynamic and long-running in nature. The sweet spot for Spring Web Flow are stateful web applications with controlled navigation such as checking in for a flight, applying for a loan, shopping cart checkout, or even adding a confirmation step to a form. What these scenarios have in common is one or more of the following traits: There is a clear start and an end point. The user must go through a set of screens in a specific order. The changes are not finalized until the last step. Once complete it shouldn’t be possible to repeat a transaction accidentally Spring Web Flow provides a declarative flow definition language for authoring flows on a higher level of abstraction. It allows it to be integrated into a wide range of applications without any changes (to the flow programming model) including Spring MVC, JSF, and even Portlet web applications. The following are common issues observed in stateful web applications with navigation requirements: Visualizing the flow is very difficult. The application has a lot of code accessing the HTTP session. Enforcing controlled navigation is important but not possible. Proper browser back button support seems unattainable. Browser and server get out of sync with "Back" button use. Multiple browser tabs causes concurrency issues with HTTP session data. Spring Web Flow provides a solution to the above issues. Spring Boot Config To use Spring Web Flow, add the following dependency to your application. Maven <dependencies <dependency <groupIdorg.springframework.webflow</groupId <artifactIdspring-webflow</artifactId <version{version}</version </dependency </dependencies Gradle dependencies { compile 'org.springframework.webflow:spring-webflow:{version}' } Quickstart Your Project Bootstrap your application with Spring Initializr. Get ahead VMware offers training and certification to turbo-charge your progress.Learn moreGet support Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.Learn moreUpcoming events Check out all the upcoming events in the Spring community.View all Why Spring Generative AI Microservices Reactive Event Driven Cloud Web Applications Serverless Batch Learn Quickstart Guides Courses Get Certified Projects Resources Blog Release Calendar Version Mappings Release Highlights Security Advisories Community Events Authors Enterprise Long-term Support Automated Upgrades Governance and Compliance Modern App Development Thank You Get the Spring newsletter Stay connected with the Spring newsletter Subscribe Copyright © 2005 - 2026 Broadcom. All Rights Reserved. The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. Terms of Use • Privacy • Trademark Guidelines Apache®, Apache Tomcat®, Apache Kafka®, Apache Cassandra™, and Apache Geode™ are trademarks or registered trademarks of the Apache Software Foundation in the United States and/or other countries. Java™, Java™ SE, Java™ EE, and OpenJDK™ are trademarks of Oracle and/or its affiliates. Kubernetes® is a registered trademark of the Linux Foundation in the United States and other countries. Linux® is the registered trademark of Linus Torvalds in the United States and other countries. Windows® and Microsoft® Azure are registered trademarks of Microsoft Corporation. “AWS” and “Amazon Web Services” are trademarks or registered trademarks of Amazon.com Inc. or its affiliates. All other trademarks and copyrights are property of their respective owners and are only mentioned for informative purposes. Other names may be trademarks of their respective owners.