Spring Webフローガイド

Spring Web Flowのガイド

1. 概要

Spring Web FlowはSpring MVC上に構築され、Webアプリケーション内にフローを実装できます。 これは、プロセスまたはいくつかのビジネスロジックを通じてユーザーをガイドする一連のステップを作成するために使用されます。

このクイックチュートリアルでは、a simple example of a user activation flowについて説明します。 ユーザーにページが表示され、Activateボタンをクリックして続行するか、Cancelボタンをクリックしてアクティブ化をキャンセルします。

ここでの前提は、すでに設定済みのSpring MVC Webアプリケーションがあるということではありません。

2. セットアップ

Spring Web Flowの依存関係をpom.xmlに追加することから始めましょう。


    org.springframework.webflow
    spring-webflow
    2.5.0.RELEASE

Spring Web Flowの最新バージョンはCentral Maven Repositoryにあります。

3. フローの作成

簡単なフローを作成しましょう。 前述のように、フローはユーザーがプロセスをガイドする一連のステップです。 Currently, this can only be done using XML-based config.

フローの各ステップは、 *状態*。

この簡単な例では、view-stateを使用します。 view-stateは、一致するビューをレンダリングするフローのステップです。 view-stateはアプリ内のページを参照します(view-stateのIDは参照先のページの名前です。__

また、transition要素を使用します。 A transition element is used for handling events that occur within a particular state.

このフロー例では、3つのview-states、つまりactivationsuccess、およびfailureを設定します。

このフローのプロセスは非常に簡単です。 開始点はactivationビューです。 activateイベントがトリガーされると、successビューに移行する必要があります。 cancelイベントがトリガーされると、failureビューに移行する必要があります。 transition要素は、view-state:で発生するボタンクリックイベントを処理します


    
    




IDactivationによって参照され、WEB-INF/view/activation.jspにある最初のアクティベーションページは、activatecancelの2つのボタンがある単純なページです。 のボタンをクリックすると、遷移がトリガーされ、ユーザーが成功view-stateWEB-INF/view/success.jsp)または失敗view-stateWEB-INF/view/failure.jsp):)に送信されます。


    

Click to activate account

flowExecutionUrlを使用して、現在のフロー実行view-stateのコンテキスト相対URIにアクセスしています。

4. フローの構成

次に、Spring Web FlowをWeb環境に設定します。 これを行うには、Flow RegistryおよびFlow Builderサービスを設定します。

Flow Registryを使用すると、フローの場所を指定し、使用されている場合はFlow Builderサービスも指定できます。

Flow Builderサービスは、フローの構築に使用されるサービスと設定をカスタマイズするのに役立ちます。

カスタマイズできるサービスの1つは、view-factory-creatorです。 view-factory-creatorを使用すると、Spring Web Flowで使用されるViewFactoryCreatorをカスタマイズできます。 Spring MVCを使用しているため、Spring MVC構成でビューリゾルバーを使用するようにSpring Web Flowを構成できます。

この例では、Spring WebFlowを構成する方法を次に示します。

@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;
    }
}

その構成にXMLを使用することもできます。


    





    



    



    

5. フローのナビゲート

フローをナビゲートするには、Webアプリを起動し、http://localhost:8080/%7Bcontext-path%7D/activationFlowに移動します。 アプリを起動するには、TomcatJettyなどのアプリケーションサーバーにアプリをデプロイします。

これにより、フローの最初のページに移動します。これは、フロー構成で指定されたactivationページです。

image

 

activateボタンをクリックして、成功ページに移動できます。

imageまたはcancelボタンで失敗ページに移動します。

image

6. 結論

この記事では、Spring Web Flowの使用方法のガイドとして簡単な例を使用しました。

この記事の完全なソースコードとすべてのコードスニペットを見つけることができますover on GitHub.