Panduan untuk Spring Web Flow

1. Ikhtisar

Spring Web Flow dibangun di Spring MVC dan memungkinkan implementasi aliran dalam aplikasi web. Ini digunakan untuk membuat urutan langkah yang memandu pengguna melalui proses atau logika bisnis.

Dalam tutorial singkat ini, kita akan membahas contoh sederhana dari alur aktivasi pengguna . Pengguna disajikan dengan sebuah halaman dan klik pada tombol Activate untuk melanjutkan atau pada tombol Cancel untuk membatalkan aktivasi.

Bukan berarti asumsi di sini adalah bahwa kami telah menyiapkan aplikasi web Spring MVC.

2. Penyiapan

Mari kita mulai dengan menambahkan ketergantungan Spring Web Flow ke pom.xml :

 org.springframework.webflow spring-webflow 2.5.0.RELEASE 

Versi terbaru Spring Web Flow dapat ditemukan di Central Maven Repository.

3. Membuat Arus

Sekarang mari buat aliran sederhana. Seperti yang dinyatakan sebelumnya, aliran adalah urutan langkah-langkah yang memandu pengguna melalui suatu proses. Saat ini, ini hanya dapat dilakukan dengan menggunakan konfigurasi berbasis XML.

Setiap langkah dalam aliran disebut keadaan .

Untuk contoh sederhana ini, kita akan menggunakan kondisi tampilan . Sebuah pandangan-negara merupakan langkah dalam aliran yang membuat tampilan yang cocok. The pandangan-negara mengacu ke halaman dalam aplikasi ( WEB-INF / view), dengan id dari pandangan-negara menjadi nama halaman yang mengacu.

Kami juga akan menggunakan elemen transisi . Sebuah transisi elemen digunakan untuk menangani peristiwa yang terjadi dalam tertentu negara .

Untuk contoh aliran ini, kami akan menyiapkan tiga status tampilan - aktivasi , keberhasilan , dan kegagalan .

Proses aliran ini cukup mudah. Titik awalnya adalah tampilan aktivasi . Jika peristiwa pengaktifan dipicu, peristiwa tersebut harus dialihkan ke tampilan sukses . Jika peristiwa pembatalan dipicu, itu harus beralih ke tampilan kegagalan . The transisi elemen menangani acara klik tombol yang terjadi di pandangan-negara:

Halaman aktivasi awal, yang disebut dengan aktivasi id dan terletak di WEB-INF / view / activation.jsp , adalah halaman sederhana yang memiliki dua tombol, aktifkan dan batalkan . Mengklik tombol dengan memicu transisi kita untuk mengirim pengguna ke status tampilan sukses ( WEB-INF / view / success.jsp ) atau status tampilan kegagalan ( WEB-INF / view / failure.jsp):

Click to activate account

Kami menggunakan flowExecutionUrl untuk mengakses URI relatif-konteks untuk status tampilan eksekusi aliran saat ini .

4. Konfigurasi Arus

Selanjutnya, kami akan mengonfigurasi Spring Web Flow ke dalam lingkungan web kami. Kami akan melakukan ini dengan menyiapkan Flow Registry dan Layanan Flow Builder.

Flow Registry memungkinkan kita untuk menentukan lokasi aliran kita dan juga menentukan Layanan Pembangun Arus jika sedang digunakan.

Layanan Flow Builder membantu kami menyesuaikan layanan dan pengaturan yang digunakan untuk membangun aliran.

Salah satu layanan yang dapat kami sesuaikan adalah tampilan-pabrik-pembuat . The pandangan-pabrik-creator memungkinkan kita untuk menyesuaikan ViewFactoryCreator digunakan oleh musim semi Arus Web. Karena kami menggunakan Spring MVC, kami dapat mengonfigurasi Spring Web Flow untuk menggunakan resolver tampilan dalam konfigurasi Spring MVC kami.

Berikut adalah cara kami mengonfigurasi 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; } }

Kita juga bisa menggunakan XML untuk konfigurasi itu:

5. Menavigasi Arus

Untuk menjelajahi alur, mulai aplikasi web dan buka // localhost: 8080 / {context-path} / activationFlow. Untuk memulai aplikasi, terapkan di server aplikasi, seperti Tomcat atau Jetty.

Ini mengarahkan kami ke halaman awal aliran, yang merupakan halaman aktivasi yang ditentukan dalam konfigurasi aliran kami:

Anda dapat mengklik tombol aktif untuk membuka halaman sukses:

Atau tombol batal untuk pergi ke halaman kegagalan:

6. Kesimpulan

Di artikel ini, kami menggunakan contoh sederhana sebagai panduan tentang cara menggunakan Spring Web Flow.

Anda dapat menemukan kode sumber lengkap dan semua cuplikan kode untuk artikel ini di GitHub.