AbstractCommandController:

A command controller used to create your own command controller, capable of binding request parameters to a data object you specify. This class offer validation features and specify the controller itself what to do with the command object that has been filled with the parameters from the request.

AbstractFormController:

An abstract controller offering form submission support. This controller helps in modeling forms and populates them using a command object you retrieve in the controller. After filling the form, the AbstractFormController binds the fields, validates, and hands the object back to the controller to take appropriate action. Some More features are: invalid form submission (resubmission), validation, and normal form workflow. You implement methods to determine which views are used for form presentation and success. Use this controller if you need forms, but don't want to specify what views you're going to show the user in the application context.

SimpleFormController:

A concrete FormController that provides excellent support when creating a form with a corresponding command object. The SimpleFormController let's you specify a command object, a viewname for the form, a viewname for page you want to show the user when form submission has succeeded.