Guide de Spring Web Flow

1. Vue d'ensemble

Spring Web Flow s'appuie sur Spring MVC et permet d'implémenter des flux dans une application Web. Il est utilisé pour créer des séquences d'étapes qui guident les utilisateurs à travers un processus ou une logique métier.

Dans ce tutoriel rapide, nous allons passer en revue un exemple simple de flux d'activation utilisateur . L'utilisateur reçoit une page et clique sur le bouton Activer pour continuer ou sur le bouton Annuler pour annuler l'activation.

Ce n'est pas que l'hypothèse ici est que nous avons une application Web Spring MVC déjà configurée.

2. Configuration

Commençons par ajouter la dépendance Spring Web Flow dans le pom.xml :

 org.springframework.webflow spring-webflow 2.5.0.RELEASE 

La dernière version de Spring Web Flow se trouve dans le référentiel central Maven.

3. Création d'un flux

Créons maintenant un flux simple. Comme indiqué précédemment, le flux est une séquence d'étapes qui guide un utilisateur à travers un processus. Actuellement, cela ne peut être fait qu'en utilisant une configuration basée sur XML.

Chaque étape du flux est appelée un état .

Pour cet exemple simple, nous utiliserons un état d'affichage . Un état d'affichage est une étape du flux qui rend une vue correspondante. L' état d'affichage fait référence à une page dans l'application ( WEB-INF / vue), l'id de l' état d'affichage étant le nom de la page à laquelle il se réfère.

Nous utiliserons également un élément de transition . Un élément de transition est utilisé pour gérer les événements qui se produisent dans un état particulier .

Pour cet exemple de flux, nous allons configurer trois états d'affichage : l' activation , le succès et l' échec .

Le processus de ce flux est assez simple. Le point de départ est la vue d' activation . Si un événement d' activation est déclenché, il doit passer à la vue de réussite . Si l' événement d' annulation est déclenché, il doit passer à la vue des échecs . L' élément de transition gère l'événement de clic de bouton qui se produit dans l' état d'affichage:

La page d'activation initiale, à laquelle fait référence l' activation de l'identifiant et située dans WEB-INF / view / activation.jsp , est une page simple qui a deux boutons, activer et annuler . En cliquant sur les boutons avec déclenchent nos transitions pour envoyer l'utilisateur à l' état d'affichage de réussite ( WEB-INF / view / success.jsp ) ou à l' état d'affichage d' échec ( WEB-INF / view / failure.jsp):

Click to activate account

Nous utilisons flowExecutionUrl pour accéder à l'URI contextuel de l'état d' affichage actuel de l'exécution du flux .

4. Configuration du flux

Ensuite, nous allons configurer Spring Web Flow dans notre environnement Web. Nous le ferons en configurant un registre de flux et un service de générateur de flux.

Le registre de flux nous permet de spécifier l'emplacement de nos flux et également de spécifier un service Flow Builder s'il est utilisé.

Le service Flow Builder nous aide à personnaliser les services et les paramètres utilisés pour créer des flux.

L'un des services que nous pouvons personnaliser est le créateur de la fabrique de vues . Le créateur de view-factory nous permet de personnaliser le ViewFactoryCreator utilisé par Spring Web Flow. Puisque nous utilisons Spring MVC, nous pouvons configurer Spring Web Flow pour utiliser le résolveur de vue dans nos configurations Spring MVC.

Voici comment nous allons configurer Spring Web Flow pour notre exemple:

@Configuration public class WebFlowConfig extends AbstractFlowConfiguration { @Autowired private WebMvcConfig webMvcConfig; @Bean public FlowDefinitionRegistry flowRegistry() { return getFlowDefinitionRegistryBuilder(flowBuilderServices()) .addFlowLocation("/WEB-INF/flows/activation-flow.xml", "activationFlow") .build(); } @Bean public FlowExecutor flowExecutor() { return getFlowExecutorBuilder(flowRegistry()).build(); } @Bean public FlowBuilderServices flowBuilderServices() { return getFlowBuilderServicesBuilder() .setViewFactoryCreator(mvcViewFactoryCreator()) .setDevelopmentMode(true).build(); } @Bean public MvcViewFactoryCreator mvcViewFactoryCreator() { MvcViewFactoryCreator factoryCreator = new MvcViewFactoryCreator(); factoryCreator.setViewResolvers( Collections.singletonList(this.webMvcConfig.viewResolver())); factoryCreator.setUseSpringBeanBinding(true); return factoryCreator; } }

Nous pouvons également utiliser XML pour cette configuration:

5. Naviguer dans les flux

Pour parcourir les flux, démarrez l'application Web et accédez à // localhost: 8080 / {chemin-contexte} / activationFlow. Pour démarrer l'application, déployez-la sur un serveur d'applications, tel que Tomcat ou Jetty.

Cela nous renvoie à la page initiale du flux, qui est la page d' activation spécifiée dans notre configuration de flux:

Vous pouvez cliquer sur le bouton activer pour accéder à la page de réussite:

Ou le bouton Annuler pour accéder à la page d'échec:

6. Conclusion

Dans cet article, nous avons utilisé un exemple simple comme guide sur l'utilisation de Spring Web Flow.

Vous pouvez trouver le code source complet et tous les extraits de code pour cet article sur GitHub.