We start with creating of an empty maven web project.
We add necessary portlet and liferay specific descriptors.
We added necessary maven configuration (Liferay maven plugin and project dependencies)
We added definition spring initialization and ixm descriptor for root application context.
We added definition for our basic spring portlet, portlet specific context file and resource bundles for easy localization.
We added a simple portlet with an empty controller which only points to a simple text only view.
We added a simple form that ask for your name and a method on the controller that handles the submission.
We added multiple views in one controller.
We made the code a litter more readable.
We added a spring form that is represented on the controller by PersonPto. We use custom PropertyEditor for date input paring.
We added spring validation for our form.
We added logging for better debugging in production environment.