Hi ,
   Please contribute to the differences and correction .
STRUTS:
A model-view-controller framework for constructing web applications with servlets and JavaServer Pages

Works in the MVC Pull Model , but then the view template is the JSP and have the scripting language as the Java.
The template designer will have to know the java which is making the role of the designer more, let them concentrate on the designing /layout issues.
The Pull MVC means that in the view jsp it will be pulling the data from the JavaBeans , these JavaBeans can be populated by the Controller also. I believe the Struts should be available with the Push type MVC…

TAPESTRY:
Web framework which seeks to find greater harmony between web designers and developers through a unique approach which experienced and novice developers alike will find enticing.

Here the template designer have just to mark the components for the dynamic content , there is no scripting involved in this Framework. This framework works on the the concept of the “Component Object Model “

TURBINE:
A model-view-controller framework for constructing web applications with either Velocity or JavaServer Pages. Turbine also has several sub-projects, such as Fulcrum which is a singleton services framework (with a bunch of helpful services) etc.

Works on MVC Pull Model


VELOCITY:
Velocity is a general purpose Java-based template engine. Suitable for many application domains including source code generation and XML transformation and styling, it is most often used in J2EE web applications as the view layer for generating dynamic content.

 Works on MVC Push Model

Regards
vicky