Útmutató a tavaszi webáramláshoz

1. Áttekintés

A Spring Web Flow a Spring MVC-re épít, és lehetővé teszi a folyamatok végrehajtását egy webalkalmazásban. Olyan lépések sorozatainak létrehozására használják, amelyek a felhasználókat egy folyamaton vagy üzleti logikán keresztül vezetik át.

Ebben a gyors bemutatóban át fogunk menni a felhasználó aktiválási folyamatának egyszerű példája. A felhasználónak megjelenik egy oldal, és rákattint a Aktiválja gombra a folytatáshoz vagy a Megszünteti gombot az aktiválás megszakításához.

Nem mintha itt feltételeznénk, hogy rendelkezünk egy már felállított Spring MVC webalkalmazással.

2. Beállítás

Kezdjük azzal, hogy hozzáadjuk a Spring Web Flow függőséget a pom.xml:

 org.springframework.webflow spring-webflow 2.5.0.KÖZLEMÉNY 

A Spring Web Flow legújabb verziója megtalálható a Central Maven Repository-ban.

3. Folyamat létrehozása

Hozzunk létre most egy egyszerű folyamatot. Mint korábban említettük, a folyamat olyan lépések sorrendje, amely végigvezeti a felhasználót egy folyamaton. Jelenleg ez csak XML-alapú konfigurációval valósítható meg.

Az áramlás minden egyes lépését a-nak nevezzük állapot.

Ehhez az egyszerű példához a-t fogjuk használni nézet-állapot. A nézet-állapot egy olyan lépés a folyamatban, amely egyező nézetet jelenít meg. A nézet-állapot az alkalmazás egyik oldalára utal (WEB-INF / nézet), az azonosítóval nézet-állapot annak az oldalnak a neve, amelyre hivatkozik.

Ezenkívül a átmenet elem. A átmenet elem egy adott eseményen belüli események kezelésére szolgál állapot.

Ehhez a példafolyamathoz hármat hozunk létre nézet-állapotok - a aktiválás, siker, és kudarc.

Ennek a folyamatnak a folyamata meglehetősen egyszerű. A kiindulópont a aktiválás Kilátás. Ha egy aktiválja esemény elindul, át kell térnie a siker Kilátás. Ha a megszünteti esemény elindul, át kell térnie a kudarc Kilátás. A átmenet elem kezeli a gombra kattintó eseményt, amely a nézetállapot:

A kezdeti aktiválási oldal, amelyre az id hivatkozik aktiválás és található WEB-INF / view / activation.jsp, egy egyszerű oldal, amelynek két gombja van, aktiválja és megszünteti. Az átmeneteket kiváltó gombokra kattintva a felhasználó eljuthat a sikerhez nézet-állapot (WEB-INF / nézet / siker.jsp) vagy a kudarc nézet-állapot (WEB-INF / nézet / hiba.jsp):

Kattintson a fiók aktiválásához

Használjuk a flowExecutionUrl a kontextus-relatív URI eléréséhez az aktuális folyamat végrehajtásához nézet-állapot.

4. Az áramlás beállítása

Ezután konfiguráljuk a Spring Web Flow-t webes környezetünkbe. Ezt egy Flow Registry és Flow Builder szolgáltatás létrehozásával fogjuk megtenni.

A Flow Registry lehetővé teszi számunkra, hogy meghatározzuk az áramlásaink helyét, és megadhatunk egy Flow Builder szolgáltatást is, ha használjuk.

A Flow Builder szolgáltatás segít testre szabni a folyamatok összeállításához használt szolgáltatásokat és beállításokat.

Az egyik szolgáltatás, amelyet testre szabhatunk, a nézet-gyár-alkotó. A nézet-gyár-alkotó lehetővé teszi számunkra a ViewFactoryCreator a Spring Web Flow használja. Mivel a Spring MVC-t használjuk, a Spring Web Flow-t úgy konfigurálhatjuk, hogy a Spring MVC-konfigurációinkban a nézetfeloldót használja.

Így állíthatjuk be a Spring Web Flow-t a példánkhoz:

@Configuration public class A WebFlowConfig kiterjeszti az AbstractFlowConfiguration {@Autowired private WebMvcConfig webMvcConfig; @Bean public FlowDefinitionRegistry flowRegistry () {return getFlowDefinitionRegistryBuilder (flowBuilderServices ()) .addFlowLocation ("/ WEB-INF / flow / 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); visszatér gyárCreator; }}

XML-t is használhatunk a konfigurációhoz:

5. Navigálás a folyamatokban

A folyamatok közötti navigáláshoz indítsa el a webalkalmazást, és lépjen a // localhost: 8080 / {context-path} / activationFlow oldalra. Az alkalmazás indításához telepítse egy alkalmazáskiszolgálóra, például Tomcat vagy Jetty.

Ez elküld minket a folyamat kezdeti oldalára, amely a aktiválás a folyamatkonfigurációnkban megadott oldal:

Kattintson a gombra aktiválja gomb a sikeroldalra lépéshez:

Vagy a megszünteti gombra a hiba oldalra lépéshez:

6. Következtetés

Ebben a cikkben egy egyszerű példát használtunk útmutatóként a Spring Web Flow használatához.

A cikk teljes forráskódját és összes kódrészletét a GitHubon találja meg.