- Spring MVC rocks. It is simple and works.
- Spring WebFlow - we used this with Spring MVC, and got ourselves tied in knots at one point deciding what *is* a Web Flow, and it can get tricky when you go from a flow into a sub flow, and then want to exit etc.... All problems that we could of avoided if we had not used Web Flow. Of course, the big USP (with WebFlow is that it supports conversational state. Trouble is, it is not often you actually need that, it is useful if you have a Wizard set of pages to code up.
Where we ended up with WebFlow was that we used WebFlow if there was an update screen, that spanned more than one page. If it was a view / read only web page, we would use MVC, and if it was an update screen which was just one page / one form, then we would just use MVC.
In hindsight, I would not use WebFlow again as I don't think the benefit's (conversational state and it manages state for you cleanly so if you spawn multiple browsers you can have no collisions), outweight the negatives of a) having to learn the WebFlow syntax (which increases the learning curve for developers), and b) introduces this grey area of what is, and is not, a flow.