Panduan untuk Aliran Web Spring

1. Gambaran keseluruhan

Spring Web Flow dibangunkan pada Spring MVC dan membolehkan melaksanakan aliran dalam aplikasi web. Ini digunakan untuk membuat urutan langkah yang membimbing pengguna melalui proses atau beberapa logik perniagaan.

Dalam tutorial ringkas ini, kita akan melalui contoh ringkas aliran pengaktifan pengguna . Pengguna disajikan dengan halaman dan mengklik pada tombol Aktifkan untuk melanjutkan atau pada butang Batal untuk membatalkan pengaktifan.

Bukannya andaian di sini adalah bahawa kita sudah mempunyai aplikasi web Spring MVC yang sudah siap.

2. Persediaan

Mari mulakan dengan menambahkan pergantungan Spring Web Flow ke pom.xml :

 org.springframework.webflow spring-webflow 2.5.0.RELEASE 

Versi terkini Spring Web Flow boleh didapati di Central Maven Repository.

3. Membuat Aliran

Mari sekarang buat aliran sederhana. Seperti yang dinyatakan sebelumnya, aliran adalah urutan langkah yang memandu pengguna melalui suatu proses. Pada masa ini, ini hanya dapat dilakukan menggunakan konfigurasi berdasarkan XML.

Setiap langkah dalam aliran dipanggil keadaan .

Untuk contoh ringkas ini, kita akan menggunakan keadaan pandangan . Keadaan pandangan adalah langkah dalam aliran yang memberikan pandangan yang sepadan. The view-negeri merujuk kepada halaman di app ( WEB-INF / view), dengan id daripada view-negeri yang merupakan nama halaman yang ia merujuk.

Kami juga akan menggunakan elemen peralihan . A peralihan unsur digunakan untuk mengendalikan peristiwa-peristiwa yang berlaku dalam tempoh tertentu negeri .

Untuk aliran contoh ini, kami akan menetapkan tiga keadaan pandangan - pengaktifan , kejayaan , dan kegagalan .

Proses untuk aliran ini cukup mudah. Titik permulaan adalah pandangan pengaktifan . Sekiranya peristiwa pengaktifan dipicu, ia harus beralih ke pandangan kejayaan . Sekiranya peristiwa batal dipicu, ia harus beralih ke paparan kegagalan . The peralihan unsur mengendalikan acara klik butang yang berlaku dalam pandangan-menyatakan:

Halaman pengaktifan awal, yang disebut dengan pengaktifan id dan terletak di WEB-INF / view / activation.jsp , adalah halaman sederhana yang mempunyai dua butang, aktifkan dan batalkan . Mengklik butang dengan mencetuskan peralihan kami untuk menghantar pengguna ke keadaan pandangan kejayaan ( WEB-INF / view / success.jsp ) atau keadaan pandangan kegagalan ( WEB-INF / pandangan / kegagalan.jsp):

Click to activate account

Kami menggunakan flowExecutionUrl untuk mengakses URI relatif konteks untuk keadaan pandangan pelaksanaan aliran semasa .

4. Mengkonfigurasi Aliran

Seterusnya, kami akan mengkonfigurasi Spring Web Flow ke dalam persekitaran web kami. Kami akan melakukan ini dengan menubuhkan Flow Registry dan Flow Builder Service.

Flow Registry membolehkan kami menentukan lokasi aliran kami dan juga menentukan Flow Builder Service jika digunakan.

Flow Builder Service membantu kami menyesuaikan perkhidmatan dan tetapan yang digunakan untuk membina aliran.

Salah satu perkhidmatan yang dapat kami sesuaikan adalah view-factory-creator . The view-kilang pencipta membolehkan kita untuk menyesuaikan ViewFactoryCreator digunakan oleh Spring Web Flow. Oleh kerana kami menggunakan Spring MVC, kami dapat mengkonfigurasi Spring Web Flow untuk menggunakan pemecah pandangan dalam konfigurasi Spring MVC kami.

Inilah cara kami mengkonfigurasi Spring Web Flow untuk contoh kami:

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

Kami juga boleh menggunakan XML untuk konfigurasi tersebut:

5. Menavigasi Aliran

Untuk menavigasi aliran, mulakan aplikasi web dan pergi ke // localhost: 8080 / {konteks-path} / activationFlow. Untuk memulakan aplikasi, gunakannya di pelayan aplikasi, seperti Tomcat atau Jetty.

Ini menghantar kami ke halaman awal aliran, yang merupakan halaman pengaktifan yang ditentukan dalam konfigurasi aliran kami:

Anda boleh mengklik butang aktifkan untuk pergi ke halaman kejayaan:

Atau butang batal untuk pergi ke halaman kegagalan:

6. Kesimpulannya

Dalam artikel ini, kami menggunakan contoh mudah sebagai panduan bagaimana menggunakan Spring Web Flow.

Anda boleh mendapatkan kod sumber lengkap dan semua coretan kod untuk artikel ini di GitHub.