Broadly speaking, there are two main types of controller: normal controllers and form controllers. A normal controller links to it’s next page using an <a> link or http GET, whilst a form controller page contains an HTML form (plus a button) and uses a HTTP POST. So the first decision is simple: is you page a form or a normal page?
|ParameterizableViewController||A controller that uses a parameter to return a static view (one without data from the DB)|
|MultiActionController||A controller that can delegate to 0 or more (1 or more) 'delegate' objects in order to determine the next view. (Strategy Pattern)|
|AbstractFormController||A basic form controller that automatically populates the form bean with incoming data|
|SimpleFormController||A form controller that handles a form that uses one screen.|
|AbstractWizardFormController||A form controller that chains multiple forms together.|
March 2011 -> don't forget that these MVC classes have now been deprecated in Spring 3.x.