Lo que personalmente me gusta en WebFlow la mayoría son 2 cosas:
- Capacidad para heredar los flujos y ver los estados. Esto es bastante útil cuando tiene algunos aspectos lógicos comunes que desea compartir entre diferentes partes de su aplicación. Por ejemplo, tiene una lógica CRUD que desea abstraer en un flujo separado y luego permitir que los flujos secundarios hereden esta lógica. Cada flujo puede tener entrada y salida, por lo que su lógica puede ser muy fina.
- Potente marco de prueba. Es posible cubrir casi todos los aspectos de su lógica de flujo en pruebas unitarias. Puede emular muchas cosas programáticas, tales como disparos de acción, las transiciones de una vista a otra, la persistencia de flujo y manejo y así sucesivamente
Lo que no me gusta es la inconsistencia y la mala compatibilidad con versiones anteriores de las versiones más recientes. Por ejemplo, el último webflow 2.1 no es compatible con JSF 1.x jira. También hay numerosos problemas con la integración con Spring Security. Por ejemplo, en spring security 3.x simplemente cambiaron algunos nombres de paquetes En general, como mencionó Sasi, webflow casi lo forzará a separar su lógica en diferentes flujos web, y esto es bueno, creo.
Acepto que el xml es muy engorroso, pero la alternativa es incluso mucho más (escribir su propia lógica de flujo con java). He visto a gente intentar hacerlo antes de que el flujo web estuviera disponible y es una pesadilla para mantener. –