2009-06-03 13 views
6

Per un'applicazione relativamente semplice, è possibile utilizzare Webflow per ridurre la necessità di creare controller di moduli? Beh, certo che può, ma suppongo che quello che sto chiedendo sia: posso e dovrei scrivere un'intera applicazione usando Webflow per tutta la logica controller/vista se il mio obiettivo è ridurre la quantità di codice che scrivo ?Can Spring Webflow elimina la necessità di classi di controller?

Mi sto facendo strada attraverso la (scarsa) documentazione del flusso di lavoro e mi sto chiedendo se ne valga la pena, o se dovessi limitarmi al normale MVC.

risposta

6

Il caso d'uso per Web Flow è quello di risolvere il problema relativo alla logica del controller che si estende su più pagine di navigazione (un pageflow o un wizard). Se non si dispone di una suddivisione del modulo su più pagine (o se sono necessari più moduli di piccole dimensioni per partecipare a una singola transazione), probabilmente non è necessario un Pageflow.

La maggior parte delle applicazioni ha tuttavia bisogno di questo. Qualcosa di più del semplice CRUD ne trarrà beneficio.

I flussi di pagina forniscono una cache naturale per i dati e possono risolvere i problemi coinvolti in caso contrario durante l'utilizzo della navigazione con pulsante indietro e più frame/schede.

Se si sta pensando a come archiviare i dati che devono durare più a lungo di una singola richiesta (la vista comune ma errata è quella di archiviare in HttpSession), si otterrà sicuramente qualcosa da Web Flow. Se non stai facendo nulla del genere e non elabori tutto alla portata della richiesta, allora le probabilità sono che non hai bisogno di Web Flow.

Aggiornamento: Web Flow può eliminare la necessità di classi del controller specializzati per realizzare un percorso di transizioni di pagina/aggiornamenti forma lungo un flusso di lavoro predefinito. Se non hai bisogno di farlo, puoi risparmiare un sacco di configurazione/complessità usando semplicemente MVC.

+0

Ok, ma tutto dovrebbe essere parte di un flusso? Diciamo che ho uno schermo che mostra solo alcuni record. L'utente può fare clic su un record e viene portato a una schermata in cui può aggiornarlo .... forse ogni record nella vista ha semplicemente un collegamento alla vista di aggiornamento e passa l'id del record. Potrei scrivere un controller per impostare quella vista iniziale, oppure potrei avere un "flusso" con uno stato. Non sto capendo qualcosa qui ... – Boden

+0

A mio avviso, dovresti fare tutto o niente con Web Flow. Nello scenario che descrivi, non hai bisogno di alcun controller specializzato. Ma per rispondere alla domanda come originariamente formulata, sì, questo è un obiettivo di Web Flow - eliminare la necessità che i controllori diventino specializzati per gestire le interazioni di tipo del flusso di lavoro. – cwash

3

SpringMVC e Spring WebFlow possono essere utilizzati insieme, se necessario, non c'è nulla di strano.

Se si dispone di un caso di utilizzo che è semplice e crud e si pensa che si potrebbe facilmente implementare questo utilizzando SpringMVC, allora questa è probabilmente la scelta giusta.

Nota: è possibile ottenere questo risultato anche in WebFlow e ciò non è né migliore né peggiore.

Se la logica della procedura guidata e i requisiti di gestione dello stato sono complessi, WebFlow è ottimo e si ottengono molte altre funzionalità gratuite come transazioni e supporto per la persistenza (Versione 2).

Problemi correlati