You are on page 1of 12

Apache Struts Apache Struts es un framework gratuito de código abierto para crear aplicaciones web de Java.

aplicaciones Web difieren de las páginas web convencionales en que las aplicaciones web pueden crear una respuesta dinámica. Muchos sitios web ofrecen sólo las páginas estáticas. Una aplicación Web puede interactuar con bases de datos y motores de la lógica de negocio para personalizar la respuesta. aplicaciones Web basadas en JavaServer Pages veces se mezclan código de base de datos, código de diseño de páginas y el código de control de flujo. En la práctica, nos encontramos con que a menos que estas preocupaciones se separan, más aplicaciones se convierten en difíciles de mantener. Una forma de preocupaciones por separado en una aplicación de software es utilizar una Model-View-Controller (MVC). El modelorepresenta la base de datos de código o de negocios, el Vista representa el código de diseño de la página, y el controlador representa el código de la navegación. El marco de trabajo Struts está diseñado para ayudar a los desarrolladores crear aplicaciones web que utilizan una arquitectura MVC. El marco cuenta con tres componentes clave:
y y y

A "petición" controlador proporcionado por el desarrollador de la aplicación que se asigna a una norma URI. Una "respuesta" controlador que transfiere el control a otro recurso que completa la respuesta. Una biblioteca de etiquetas que ayuda a los desarrolladores crear aplicaciones interactivas basadas en formularios con las páginas del servidor.

La arquitectura del marco de trabajo y las etiquetas son compatibles con palabra de moda. Struts trabaja bien con aplicaciones REST convencionales y con las tecnologías nouveau como SOAP y AJAX. El Proyecto Apache Struts El Apache Struts proyecto es la comunidad de código abierto que crea y mantiene el marco de Apache Struts. El proyecto consiste en un grupo diverso de voluntarios que comparten valores comunes en materia de desarrollo

Nuestro objetivo es aprovechar los estándares existentes mediante la producción de las piezas que faltan tenemos que crear aplicaciones de nivel empresarial que son fáciles de mantener en el tiempo. El proyecto se llama "puntales" ya que el marco está destinado a proporcionar al "bases invisibles" que apoyan el desarrollo de aplicaciones profesionales. y un amplio apoyo. bien documentado.x está maduro.x es la mejor opción para los equipos que valoran soluciones elegantes a problemas difíciles. Struts proporciona el pegamento que une los diversos elementos de la plataforma estándar de Java en un todo coherente.4 Beneficios y Ventajas Ventajas de Struts ‡El uso del mecanismo de tags JSP Promueve el reuso de código y código abstracto de Java del archivo JSP.1 Antecedentes del FRAMEWOK STRUTS 2. Struts 1 es la mejor opción para los equipos que valoran soluciones probadas a problemas comunes.colaborativo de código abierto basado en la comunidad. CAPITULO II: Marco Teórico 2. El marco 2. y Struts comunidades WebWork unido sus fuerzas para crear Struts 2. Esto permite una integración agradable en la herramienta de desarrollo basada en JSP que permite autoría con tags ‡Librería Tag . El Apache Struts proyecto se enorgullece de compartir estos valores con nuestra organización de padres: La Apache Software Foundation. Struts 2 fue conocido originalmente como WebWork 2 . Struts 1 es reconocido como el marco de aplicación web más popular para Java. El Apache Struts proyecto ofrece dos versiones principales de la infraestructura de Struts. El marco 1. Después de trabajar de forma independiente durante varios años.

Struts provee un punto de partida si estás comenzando a aprender la tecnología de tags JSP tag. Este enfoque también permite a los desarrolladores de Java y Web centrarse en sus tareas específicas (aplicación de la lógica de negocio. Struts proporciona un conjunto de etiquetas JSP personalizadas que le permiten fácilmente la salida de las propiedades de los componentes JavaBeans. Etiquetas Bean. 1. Esta articulación flexible significa que muchos cambios se pueden hacer sin modificar o recompilar el código de Java. 2. etc) sin necesidad de conocer acerca de la disposición general del sistema. valores de Struts / cartografía se representan en XML o archivos de propiedad. Frijoles formulario. ‡Open source Está disponible el código y todos pueden usar las revisiones del código ‡Implementación simple de MVC Struts ofrece alguna comprensión si deseas crear tu propia implementación. Centralizado basado en archivos de configuración. Por su puesto. y que los cambios al por mayor puede hacerse editando un solo archivo. el problema se hace más complejo y necesita más manejo. la presentación de ciertos valores a los clientes. 3. . ‡Manejo del problema de espacio Divide y vencerás es una forma agradable de resolver el problema y hacerlo manejable.

Usted no tiene que hacerlo. Struts proporciona un conjunto de etiquetas JSP personalizadas para crear formularios HTML que están asociados con componentes JavaBeans. Etiquetas HTML. 7. Struts tiene un validador robusto. Formulario de Validación de campo.4. que figura en el marco Struts. utilizando una conocida y bien documentada marco hacer ese trabajo mucho más fácil. por ejemplo. Asignación de parámetros de solicitud HTTP a objetos Java Struts está a cargo de. 5. Esta validación se puede realizar en el servidor (en Java).  Le permite volver a mostrar las formas con algunos o todos los valores introducidos previamente intacta. extensible que se puede utilizar para validar de manera uniforme sus campos de formulario. Un marco homebrewed no pueden igualar eso. eso significa que cualquier problema que tenga se habrá visto por otra persona (y esperemos que resolverse) en primer lugar. Este bean / asociación forma sirve para dos propósitos útiles:  Le permite obtener los valores iniciales de campo de formulario-a partir de objetos Java. o ambos en el servidor y en el cliente (en JavaScript). Si tiene que dejar el proyecto y / o alguna otra persona tiene que mantener a continuación. "Código de Plomería". Esto le permite centrarse más en el problema de dominio en lugar de la construcción de infraestructuras. Generales de pruebas con usuarios. Desde Struts se utiliza en muchas aplicaciones web el marco obtendrá miró a los ojos de muchos más que cualquier cosa que pudiera escribir en paz. Desventajas de Struts ‡Cambio . Por lo general. 8. 6. Una buena documentación y un montón de libros. pero no siempre.

lo que significa ser implementado con HTML. Se deben modificar muchas veces los códigos a causa de los cambios en struts. Cual sea el tipo de framework que decidas usar. archivos JSP.1 y Servlet 2.El framework está sufriendo una rápida cantidad de cambios. pero no previene al desarrollador de los problemas con el código Java. ‡Nivel correcto de abstracción Una de las librerías de tags de Struts es el Tag Logic. Han ocurrido una gran cantidad de cambios desde Struts 0. esto puede ser frustrante a veces. Aquellos en los que me centraré incluyen: y y y Madurez Controlador de flexibilidad / control de eventos Navegación .5 y 1. ‡Soporte de aplicaciones J2EE Struts requiere un contenedor que soporte especificaciones JSP 1.2.5 Comparacion con otras Software FRAMEWORK JavaServer Faces (JSF) vs Struts Yo tendría que decir. el cual maneja generación de condicionales de salida.2. Pensé que sería una buena idea comparar con Struts JSF mediante la evaluación de varias características que un arquitecto de aplicaciones que buscan en un marco de aplicación Web. a menos que se utilice Tomcat 3. 2.0. Se debe descargar la versión más reciente para evitar métodos desaprobados. debes entender el entorno en el cual se despliega y se mantiene. ‡Complejidad Separar el problema en partes introduce complejidad. Pero es más fácil decirlo que hacerlo. En este artículo se comparan características. la pregunta más común o comentarios entró en la línea de la comparación de Struts a JSF. Con los constantes cambios ocurriendo. Esto solo no resolverá los problemas de instalación. ‡Libertad limitada Struts está basado en una solución MVC. y servlets.

Controlador de flexibilidad / control de eventos Uno de los principales objetivos de Struts fue el de implementar un marco que utilizó de modelo de Sun 2 Marco y la reducción de las tareas comunes y repetitivas a menudo en Servlets y JSP desarrollo. así como el creador de Struts.y y y Página de desarrollo Integración Extensibilidad Ciertamente. Sé de varios sistemas de producción de éxito que se construyeron utilizando la infraestructura de Struts. JavaServer Faces (JSF). que es una orden.Otras áreas tales como diseño de página. y siempre a la gente a realizar sus propias pruebas de rendimiento en contra de su propio conjunto de requisitos. porque hay demasiados factores que pueden afectar al rendimiento. ya que son el corazón de los marcos. sería injusto. usted puede confiar en los diferentes niveles de apoyo en función de la aplicación que usted elija. como el rendimiento. Struts definitivamente tiene la ventaja en esta categoría. Varias compañías. sin embargo. El corazón de Struts es el controlador. . hay otros lugares en los que es posible que desee hacer una comparación. La interacción se muestra en la Figura 1. El marco de trabajo Struts tiene un controlador de eventos único para la solicitud HTTP. sin embargo. que es una petición HTTP parámetros traduce en un ActionForm Java. Struts utiliza el Front Controller Patrón y Patrón de comandos. la acción devuelve el resultado de nuevo al controlador frontal. el marco JSF dentro de WebSphere Studio viene con soporte de IBM. tomará algún tiempo para ver algunos sistemas desplegados. Sin embargo. Con JSF. Una vez que la solicitud se cumple. han contribuido a la creación de JSF durante ese tiempo. y pasa el ActionForm en una clase de acción de Struts. Un servlet único. pero me centraré en el set que acabo de mencionar. que luego se utiliza para elegir el lugar para navegar siguiente. la validación y manejo de excepciones se quedaron también en el interés del ahorro de espacio. Por ejemplo. También voy a dedicar más tiempo a las secciones de Control y Navegación. ha sido en el proyecto durante 2 años. Madurez Struts ha estado alrededor por algunos años y tiene la ventaja de la madurez. incluyendo IBM. Una evaluación del desempeño. El URI que indica la clase de acción para ir. Un ejemplo es el WebSphere Application Server basado en la Web de la consola administrativa. Craig McClanahan. El rendimiento de JSF es específico a la aplicación de proveedor.

.[Figura 1] JSF utiliza el controlador de la página de patrones. A continuación. el trabajo del servlet va a recibir una se enfrenta a la página con los componentes. Las caras del ciclo de vida se ilustra en la Figura 2. Aunque no es un servlet solo se enfrenta a cada solicitud se procesa. se disparan los eventos de cada componente y hacer que los componentes con un conjunto de herramientas de procesamiento. Los componentes también se puede enlazar a los datos del modelo.

Ambos JSF y Struts soporta actualmente dos tipos de navegación. Navegación La navegación es una característica clave de ambos Struts y JSF. JSF puede tener varios controladores de eventos en una página. ya que añade muchas ventajas de un controlador frontal. ofrece a los desarrolladores la capacidad de conectar en el modelo sin romper capas. Struts Struts utiliza la noción de los delanteros para definir la navegación. Ambos marcos tienen un modelo de navegación declarativa y definir la navegación mediante reglas dentro de su archivo de configuración XML. mientras que Struts está orientado a un evento por solicitud. su ActionForms tienen que ampliar las clases de Struts.cuando una página se deriva directamente a la siguiente. Hay dos tipos de navegación: navegación estática .[Figura 2] JSF es el ganador en esta área. el modelo sigue siendo conscientes de JSF. por otro lado. Además. Sobre la base de una . En otras palabras. la creación de otro nivel de diseño aburrido de codificación o malo de obligar a su modelo a ActionForms. y navegación dinámica . con Struts. JSF.cuando alguna acción o de la lógica que determina la página a donde ir. pero al mismo tiempo le da la flexibilidad del Contralor página.

retorno (hacia adelante). / / valor de retorno myForm MyForm = (MyForm) forma. <navigation-rule> <from-view-id> / FromPage. errores.actions.findForward (el "éxito").jsp"> </ siguiente> </ accion> </ action-mappings> Los desarrolladores pueden entonces elegir qué programación hacia adelante para volver. la infraestructura de Struts decide qué JSP para adelante y hacer. El siguiente ejemplo muestra una regla de navegación que define cómo se va a la página siguiente.doButton1Action "/> . ActionForward adelante = ActionForward nuevo (). <accion path="/myForward" forward="/target.} = mapping.add ("nombre". jsp </ a-ver-id> </ navegación de los casos> </ regla de navegación-> Sin embargo. hx <: tipo commandExButton = "submit" value = "Enviar" styleClass = "commandExButton" id = "button1" action = "# {} Pc_FromPage. ActionError nueva ("id")).jsp </ a-Identificación del punto de vista-> <navigation-case> éxito <from-outcome> </ a partir de resultados de> <to-viewid> / ToPage .MyAction"> <forward path=".jsp"> </ accion> Struts soporta el reenvío dinámico mediante la definición de un avance concreto en una definición de acción. hx <: tipo commandExButton = "submit" value = "Enviar" styleClass = "commandExButton" id = "button1" action = "éxito" /> JSF dinámico de navegación JSF también admite la navegación dinámica al permitir que los componentes de ir a un controlador de la acción.jsp"> </ siguiente> name="error" <forward path=". response HttpServletResponse) throws Exception {errores ActionErrors = ActionErrors nuevo (). forma ActionForm. Struts permite una acción que envía múltiples. try {/ / hacer algo aquí} catch (Exception e) {/ / Informe el error con el nombre adecuado y la identificación. } JSF estática de navegación JSF admite la navegación mediante la definición de normas de navegación en los rostros archivo de configuración. HttpServletRequest request. Puede definir un avance mediante la creación de una acción tal como se muestra en el fragmento a continuación. adelante = mapping. pública ActionForward ejecutar (cartografía ActionMapping. <action-mappings> <accion name="myForm" path="/myACtion" scope="request" name="success" type="strutsnav.cuerda. a diferencia de Struts./target. Usted puede tener varios componentes en la página de definir acciones diferentes que comparten la misma regla de navegación.findForward hacia adelante (el "éxito")./error. retorno (hacia adelante). JSF navegación se aplica en el nivel de página y puede tener un carácter independiente. La acción está codificado en el componente que permite el control de grano más fino en la página.

oculta los detalles de los datos dentro del árbol de componentes. Además. Extensibilidad . Integración Struts fue diseñado para ser modelo neutral. Aunque el marco de trabajo Struts proporciona bibliotecas de enlazar en las formas de acción y ofrece algunos servicios auxiliares. pública doButton1Action String () {return "éxito". lo que no hay ganchos especiales en una capa del modelo. SF proporciona la capacidad de construir componentes de una variedad de tecnologías de la vista y lo hace de tal manera que se toolable. pero JSF permite un enfoque más flexible y un mejor diseño ya que la regla de navegación está disociada de la acción. Página de Desarrollo JSF fue construido con un modelo de componentes en cuenta para permitir que los desarrolladores de herramientas para apoyar el desarrollo RAD. proporciona una capa adicional de tediosas de codificación y la transición del estado. JSF permite definir la acción de la regla de navegación. los datos de la página debe ser movida de un Formulario de acción en otro formato de entrada del modelo y requiere la codificación manual. La clase ActionForm. Hay utilidades de copia vista basada reflexión-. es el ganador en esta área. por lo tanto.} A pesar de que las normas de navegación no es necesario especificar la acción a fin de apoyar la navegación dinámica. JSF.Los desarrolladores pueden codificar los controladores de la acción de cualquier clase para tomar la decisión de navegación dinámica. si así lo desea. Por lo general. JSF.doButton1Action # {} </ a de acción> <-de los resultados <> éxito o de resultado-> <to-view-id> / ToPage. que se orienta hacia un JSP-y el enfoque centrado en HTTP. es más fácil de JSF para tener una página con las normas de navegación diferentes sin tener que codificar una gran cantidad de lógica if-else. por otro lado.jsp </ a-ver-id> <navigation-case> <fromaction> pc_FromPage. componentes ricos. pero eso es todo. Struts no tenía esa visión. Voy a hablar más de esto en futuros artículos. <navigation-rule> <from-view-id> / FromPage. ya sea por un maniquí URI o una clase de acción.jsp </ <> a-vista-id / <> de navegación de los casos / regla de navegación-> Tanto Struts y JSF son bastante flexibles a partir de un punto de vista de navegación. Esto permite el desarrollo de gran alcance RAD. tales como la combinación de JSF y SDO. Esto le permite obligar a una regla de navegación específica para ir a través de una acción. tales como tablas de datos se puede enlazar a cualquier clase Java. Struts te obliga a conectar en una acción.

El gancho principal de Struts es una clase RequestProcessor que dispone de varios métodos de devolución de llamada a través del ciclo de vida de una solicitud. Struts puede ser el camino a seguir. Veo JSF convertirse en un marco dominante debido a su control flexible y de navegación. JSF deben ser objeto de nuevas aplicaciones. Pero a partir de una dirección estratégica y el modelo de programación. Además. Si usted tiene un programa agresivo con no mucho tiempo para ocuparse de la evaluación de diferentes proveedores o la negociación con soporte para las nuevas implementaciones de JSF. Un desarrollador puede extender esta clase para reemplazar o mejorar el marco. JSF fue realmente capaces de aprender mucho de los proyectos de Struts. Animo a los desarrolladores tomar tiempo para aprender JSF y comenzar a utilizarlas para nuevos proyectos. JSF se construye con la integración y extensibilidad en mente. me gustaría considerar la elección de los proveedores de JSF basada en el set de componentes y herramientas RAD. JSF tiene claramente la ventaja en esta área. pero el uso de una herramienta RAD JSF. Además. pero esto no es casual.Tanto Struts y JSF ofrece oportunidades para ampliar el marco para satisfacer las necesidades en expansión. como WebSphere Studio puede aumentar su productividad. JSF proporciona una funcionalidad equivalente por lo que le permite extender interfaces especiales del ciclo de vida. Por otra parte. JSF totalmente separa la fase de hacer desde el controlador que permite a los desarrolladores proporcionar a sus herramientas de representación por parte de la construcción de componentes personalizados. JSF no es más fácil de lo puntales en el desarrollo de la mano. Esta es una de las características de gran alcance en Struts JSF que no presta. . Conclusión En general. habría que considerar muchos factores. Struts es un marco robusto y funciona bien. JSF es un marco mucho más flexible. Si usted está comenzando un nuevo proyecto hoy en día.

185.nifty.php/STRUTS .75.http://homepage1.30/atiwiki/index.html http://150.com/algafield/barcia.