Es un framework que implementa el patr�n de arquitectura MVC en Java
Un framework es la extensi�n de un lenguaje mediante una o m�s jerarqu�as de clases que implementan una funcionalidad y que (opcionalmente) pueden ser extendidas. El framework puede involucrar TagLibraries.
El patr�n de arquitectura MVC (Model-View-Controller) es un patr�n que define la organizaci�n independiente del Model (Objetos de Negocio), la View (interfaz con el usuario u otro sistema) y el Controller (controlador del workflow de la aplicaci�n: "si estoy aqu� y me piden esto entonces hacer tal cosa, si sale bien mostrar esto y sino lo aquello otro").

��C�mo funciona esto en aplicaciones Web?

El navegador genera una solicitud que es atendida por el Controller (un Servlet especializado). El mismo se encarga de analizar la solicitud, seguir la configuraci�n que se le ha programado en su XML y llamar al Action correspondiente pas�ndole los par�metros enviados. El Action instanciar� y/o utilizar� los objetos de negocio para concretar la tarea. Seg�n el resultado que retorne el Action, el Controller derivar� la generaci�n de interfaz a una o m�s JSPs, las cuales podr�n consultar los objetos del Model a fines de realizar su tarea.
��Para qu� sirve?
Evidentemente, como todo framework intenta, simplifica notablemente la implementaci�n de una arquitectura seg�n el patr�n MVC. El mismo separa muy bien lo que es la gesti�n del workflow de la aplicaci�n, del modelo de objetos de negocio y de la generaci�n de interfaz.
El controlador ya se encuentra implementado por Struts, aunque si fuera necesario se puede heredar y ampliar o modificar, y el workflow de la aplicaci�n se puede programar desde un archivo XML Las acciones que se ejecutar�n sobre el modelo de objetos de negocio se implementan bas�ndose en clases predefinidas por el framework y siguiendo el patr�n Facade. Y la generaci�n de interfaz se soporta mediante un conjunto de Tags predefinidos por Struts cuyo objetivo es evitar el uso de Scriplets (los trozos de c�digo Java entre "<%" y "%>"), lo cual genera ventajas de mantenibilidad y de perfomance (pooling de Tags, caching, etc).
Log�sticamente, separa claramente el desarrollo de interfaz del workflow y l�gica de negocio permitiendo desarrollar ambas en paralelo o con personal especializado.
Tambi�n es evidente que potencia la reutilizaci�n, soporte de m�ltiples interfaces de usuario (Html, sHtml, Wml, Desktop applications, etc.) y de m�ltiples idiomas, localismos, etc.
��Licencia?
Struts est� disponible bajo la licencia "free-to-use-license" de la Apache Software Foundation (ver http://www.apache.org/LICENSE-1.1)
��Y para qu� este manual b�sico?
Para simplificar el "first touch" y para explicar Struts desde el punto de vista del desarrollo de aplicaciones Web.
No pretende ser un tutorial, una gu�a del usuario ni un manual de referencia. Ellos ya se han escrito y est�n disponibles en las direcciones que se mencionan en la secci�n "�D�nde encuentro m�s info?"
��D�nde encuentro m�s info?
- http://jakarta.apache.org/struts
- http://jakarta.apache.org/struts/userGuide
- http://jakarta.apache.org/struts/api/index.html
- http://jguru.com/faq/Struts
- http://jguru.com/forums/Struts
- http://jakarta.apache.org/struts/#Involved
B�squedas en www.google.com poniendo como primera palabra Struts.