Академический Документы
Профессиональный Документы
Культура Документы
Struts 2 es un framework de desarrollo del lado web, como framework est basado en automatizar las tareas comunes y
proveer un marco comn de trabajo para el desarrollador, en otras palabras, define la arquitectura de la aplicacin o
componente.
A diferencia de Struts 1, Struts 2 es un marco completamente nuevo, basado en los proyectos OpenSymphony y Web
Works Framework. Usa el modelo MVC y es lo bastante flexible para poder escalarlo con otros frameworks como
Hibernate, Spring, etc.
Struts 2 define el Controlador con el FilterDispatcher, el cual procesa todas las peticiones (request) por parte del cliente,
se encarga de verificar en el struts.xml los filtros y acciones a llevar a cabo segn corresponda.
El Modelo lo implementan las clases Action, las cuales son bsicamente simples POJO (plain old java object), los cuales
no necesariamente deben implementar una interfaz, pero s implementar el mtodo execute(); sin embargo es una buena
prctica que implemente la interfaz ActionSupport, de esa forma nos aseguramos automticamente de implementar otras
interfaces que nos permiten validar y no sobre cargar el mtodo exectue(). Cabe recordar que el Modelo es la parte que
implementa la lgica del negocio.
Por ltimo, la Vista puede ser definida por varias tecnologas como JSP, Html, XHtml, Velocity, etc.
A continuacin explicar una simple aplicacin conocida por cualquier programador como Hola Mundo, la
desarrollaremos en Eclipse y Apache Tomcat.
Los requisitos para desarrollarla son:
2. Ahora agregamos las libreras y archivos de configuracin bsicos del proyecto para Struts 2. Primero
descomprimir el .zip con las libreras descargadas de Struts 2 (en esta aplicacin he utilizado: Struts 2.2.3.1),
seleccionamos las siguientes libreras del folder lib:
struts2-core-2.2.3.1.jar
xwork-core-2.2.3.1.jar
ognl-3.0.1.jar
freemarker-2.3.16.jar
commons-logging-1.1.1.jar
commons-fileupload-1.2.2.jar
Para este proyecto tan simple, con estas libreras nos basta por ahora. Copiamos esos archivos, damos click derecho sobre
la carpeta lib del proyecto en Eclipse, y elegimos: pegar. Nos debe quedar as:
Ahora creamos la pgina de inicio (Index.jsp), damos click derecho sobre WebContent New JSP File (si no
encuentran esa opcin directamente, seleccionen Others y busquen en una de las secciones).
Creamos ahora los archivos de configuracin necesarios: web.xml y struts.xml. Click derecho sobre WEB-
INF New File, le damos el nombre de web.xml
Click derecho sobre el directorio src New File, le damos el nombre de struts.xml
Esta configuracin es la ms bsica y por defecto para usar struts 2, podemos apreciar que se hace referencia al
controlador (FilterDispatcher ), el mapeo de las urls: /*, el cual indica al controlador que revise todas las peticiones
(request) que enve el cliente, y por ltimo la pgina de inicio por defecto: index.html. Esta es una configuracin muy
bsica, pero podemos explicar que aqu se pueden agregar ms parmetros, como cadenas de conexiones, ms servlets,
etc. Esto depender de la arquitectura del proyecto.
Ahora editamos el archivo struts.xml:
<struts>
<package name="default" extends="struts-default">
<action name="holaMundo"class="org.per.trux.actions.HolaMundo
">
<resultname="SUCCESS">/HolaMundo.jsp</result>
</action>
</package>
</struts>
Aqu podemos apreciar las acciones a ejecutar por Struts 2, previo definimos el paquete, el cual nos proporciona el poder
definir una estructura elegante y separar las diferentes acciones segn sea el caso, cabe destacar que se pueden incluir
(include) ms archivos Xml que hereden de este base, de esa forma podemos organizar la estrutura del proyecto y no
hacer que el archivo por defecto crezca y sea inmanejable, una vez ms acoto que esto depender de la arquitectura del
proyecto.
Dentro del paquete van las acciones, <action>, la cual tiene los atributos bsicos: name, el cual es el nombre de la accin
a realizar, en este caso, cuando en la url termine en: holaMundo.action (notar que en el archivo struts.xml no viene ese
nombre, no es necesario ya que struts es lo suficiente inteligente para mapearla), luego en este caso hay una clase en el
atributo class que ejecutar la accin (Modelo, la clase Action), la cual tiene la Uri donde se
encuentra:actions.HolaMundo. luego tenemos el resultado que se mostrar con el result al cliente en caso que
sea exitosa la accin: <resultname="ok">/bienvenida.jsp</result>, esto nos dice que en caso de
devolver la cadena (String) ok la accin (HolaMundo.java), nos enve a la pgina: bienvenida.jsp
Esta es una simple aplicacin, pero se pueden definir mucho ms complejas acciones a realizar.
Por ltimo creamos un archivo ms: bienvenida.jsp, damos click derecho sobre WebContent New JSP File.
3. Ahora creamos nuestra clase y agregamos contenido a nuestras pginas jsp. Primero la clase que estar en la
carpeta: src/actions/HolaMundo.java
Hay que darle a refresh al proyecto para poder visualizarlo en la carpeta src.
Agregamos las propiedades de tipo String: nombre y saludo, luego usamos la funcionalidad de Eclipse para que nos
autogenere los get y set de ambos atributos de clase:
Implementamos el mtodo obligatorio execute, el cual devuelve por defecto un String:
package org.per.trux.actions;
/**
*
* @author Felipe Vsquez Ganoza
*/
import com.opensymphony.xwork2.ActionSupport;
<body>
<h3>Cargando...</h3>
</body>
</html>
y bienvenida.jsp:
O podemos exportar el .war y copiarlo directamente en el directorio de nuestro servidor, para exportar el .war desde
eclipse, damos click derecho sobre el proyecto Export war file
Espero haya sido explicativo este pequeo tutorial y poder expandir o volverlo ms complejo en futuros posts.