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、つまりactivation、success、およびfailureを設定します。
このフローのプロセスは非常に簡単です。 開始点はactivationビューです。 activateイベントがトリガーされると、successビューに移行する必要があります。 cancelイベントがトリガーされると、failureビューに移行する必要があります。 transition要素は、view-state:で発生するボタンクリックイベントを処理します
IDactivationによって参照され、WEB-INF/view/activation.jspにある最初のアクティベーションページは、activateとcancelの2つのボタンがある単純なページです。 のボタンをクリックすると、遷移がトリガーされ、ユーザーが成功view-state(WEB-INF/view/success.jsp)または失敗view-state(WEB-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に移動します。 アプリを起動するには、TomcatやJettyなどのアプリケーションサーバーにアプリをデプロイします。
これにより、フローの最初のページに移動します。これは、フロー構成で指定されたactivationページです。
activateボタンをクリックして、成功ページに移動できます。
6. 結論
この記事では、Spring Web Flowの使用方法のガイドとして簡単な例を使用しました。
この記事の完全なソースコードとすべてのコードスニペットを見つけることができますover on GitHub.