Vodič za proljetni web tok

1. Pregled

Spring Web Flow nadovezuje se na Spring MVC i omogućuje implementaciju tokova unutar web aplikacije. Koristi se za stvaranje nizova koraka koji korisnike vode kroz proces ili neku poslovnu logiku.

U ovom brzom uputstvu ćemo proći jednostavan primjer korisničkog tijeka aktivacije. Korisniku se predoči stranica i klikne na Aktivirati gumb za nastavak ili na Otkazati gumb za otkazivanje aktivacije.

Nije pretpostavka da je ovdje već postavljena Spring MVC web aplikacija.

2. Postavljanje

Počnimo s dodavanjem ovisnosti Spring Web Flow u pom.xml:

 org.springframework.webflow spring-webflow 2.5.0.OSLOBOĐENJE 

Najnovija verzija Spring Web Flow-a može se naći u središnjem spremištu Maven.

3. Stvaranje protoka

Stvorimo sada jednostavan tok. Kao što je ranije rečeno, tijek je slijed koraka koji korisnika vodi kroz postupak. Trenutno se to može učiniti samo pomoću XML-zasnovane konfiguracije.

Svaki korak u toku naziva se a država.

Za ovaj jednostavan primjer koristit ćemo pogled-stanje. A pogled-stanje je korak u toku koji prikazuje odgovarajući pogled. The pogled-stanje odnosi se na stranicu u aplikaciji (WEB-INF / prikaz), s ID-om pogled-stanje što je naziv stranice na koju se odnosi.

Također ćemo koristiti a tranzicija element. A tranzicija element se koristi za rukovanje događajima koji se događaju unutar određenog država.

Za ovaj primjer protoka postavit ćemo tri stajališta - the aktivacija, uspjeh, i neuspjeh.

Proces ovog protoka prilično je jednostavan. Polazna točka je aktivacija pogled. Ako an aktivirati događaj je pokrenut, trebao bi prijeći na uspjeh pogled. Ako je otkazati događaj je pokrenut, trebao bi prijeći na neuspjeh pogled. The tranzicija element obrađuje događaj klika na gumb koji se događa u stanje prikaza:

Početna stranica aktivacije na koju se odnosi id aktivacija i nalazi se u WEB-INF / view / activation.jsp, je jednostavna stranica koja ima dva gumba, aktivirati i otkazati. Klikom na gumbe s pokretačem naših prijelaza ili šaljete korisnika do uspjeha pogled-stanje (WEB-INF / view / success.jsp) ili neuspjeh pogled-stanje (WEB-INF / view / failure.jsp):

Kliknite za aktiviranje računa

Koristimo flowExecutionUrl za pristup kontekstualnom URI-ju za trenutno izvršavanje protoka pogled-stanje.

4. Konfiguriranje protoka

Dalje, konfigurirat ćemo Spring Web Flow u naše web okruženje. To ćemo učiniti postavljanjem registra protoka i usluge graditelja protoka.

Registar protoka omogućuje nam da odredimo mjesto naših tokova i također odredimo uslugu graditelja protoka ako se koristi.

Usluga Flow Builder pomaže nam prilagoditi usluge i postavke koje se koriste za izgradnju protoka.

Jedna od usluga koju možemo prilagoditi je pogled-tvornica-kreator. The pogled-tvornica-kreator omogućuje nam prilagodbu ViewFactoryCreator koristi Spring Web Flow. Budući da koristimo Spring MVC, možemo konfigurirati Spring Web Flow da koristi razrješivač prikaza u našim Spring MVC konfiguracijama.

Evo kako ćemo konfigurirati Spring Web Flow za naš primjer:

@Configuration javna klasa WebFlowConfig proširuje 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); povratak factoryCreator; }}

Također možemo koristiti XML za tu konfiguraciju:

5. Navigacija tokovima

Da biste se kretali kroz tokove, pokrenite web aplikaciju i idite na // localhost: 8080 / {context-path} / activationFlow. Da biste pokrenuli aplikaciju, postavite je na aplikacijski poslužitelj, kao što je Tomcat ili Jetty.

To nas šalje na početnu stranicu toka, koja je aktivacija stranica navedena u našoj konfiguraciji protoka:

Možete kliknuti na aktivirati gumb za otvaranje stranice uspjeha:

Ili otkazati gumb za otvaranje stranice neuspjeha:

6. Zaključak

U ovom smo članku koristili jednostavan primjer kao vodič za korištenje Spring Web Flowa.

Kompletni izvorni kod i sve isječke koda za ovaj članak možete pronaći na GitHubu.