Herramientas necesarias
Enviado por Hhernanb • 26 de Septiembre de 2011 • Trabajo • 1.579 Palabras (7 Páginas) • 658 Visitas
Struts2 es un framework para desarrollar aplicaciones web basadas en Java. Surge de la unión de las comunidades de Webwork y de Struts, en la que la base es de webwork y el nombre lo pone Struts.
En su sitio web nos informa de que es más simple y más completo. Aquí podemos encontrar la última versión disponible para descargar así como tutoriales, guías…
Herramientas necesarias
Necesitamos nuestras herramientas Java (JDK), un IDE (hoy por hoy Eclipse es el rey y yoxos su profeta) y un servidor de aplicaciones (Tomcat siempre es una buena elección).
Además descargaremos la distribución 2.0.14 de Struts. La distribución contiene el código, la documentación, y varias aplicaciones web de ejemplo (empaquetadas en formato .war), entre ellas struts-blank-2.0.14.war, que es una aplicación web vacía preparada para comenzar con Struts2, es decir, algo así como el hola mundo que vamos a construir en esta entrada.
holamundoStruts2014
Empezamos con el eclipse. Creamos un nuevo proyecto web dinámico, que llamaremos holamundoStruts2014.
En el fichero despcriptor de la aplicación web, el WebContent > WEB-INF > web.xml nos aseguramos que esté nuestro fichero en la lista de ficheros de bienvenida. El valor de <display-name> será el que se mostrará en la administración de nuestro servidor de aplicaciones.
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>holamundoStruts2014</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Añadimos las librerías sobre las que vamos a trabajar:
commons-logging.jar. Se trata de una librería genérica que nos posibilita el registro de sucesos (logging).
freemarker.jar. Es un motor para trabajar con plantillas en nuestra parte de Vista.
ognl.jar. Es una librería para trabajar con EL.
struts2-core.jar. El núcleo de Struts2. Si lo abrís fijáos en el nombre de los paquetes.
xwork.jar. Es un framework que nos proporcionaInversión de Control, EL, validaciones…
Ahora debemos capturar las llamadas al contenedor web para que las atienda Struts2. Para ello configuramos el fichero web.xml añadiendo:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
El resultado será que todas las URLs invocadas dentro del contexto de nuestra aplicación web serán interceptadas y atendidas por el filtro de Struts2.
Nuestra primera acción
Queremos crear una acción que recibirá unos datos de entrada introducidos por el cliente (dos cadenas de caracteres, identificador y contraseña), los procesará (comprobará si está autorizado) y decidirá la siguiente acción. Fácil ? Pensemos en cómo implementarlo.
Necesitamos dos jsp's : una jsp de entrada donde introducir los datos (jsp/identificar.jsp) y otra para a la que se accederá si se tiene éxito al identificarse (jsp/indexIdentificado.jsp).
Necesitamos una acción que recibirá los datos, procesará los datos (los enviará al negocio), y en función del resultado decidirá si dirigir al cliente a la zona que necesita identificación (indexIdentificado.jsp si son correctos los datos), o dirigir a la pantalla de identificación (identificar.jsp si no son correctos los datos) mostrando un mensaje. Si durante el proceso se detecta un error (una excepción, por ejemplo si la base de datos está caída) también se dirigirá a la pantalla de identificación con un mensaje de error interno.
Ahora toca los formularios… pero espera ! Struts2 NO TIENE FORMULARIOS ! Sus desarrolladores se muestran muy orgullosos con este punto.
Necesitamos una clase de negocio, que en este ejemplo tan simple será muy sencilla. Y necesitamos una clase de persistencia que sería la que accedería a la base de datos para obtener los datos. Con esos datos el negocio decidirá el resultado que pasar a la acción. En este ejemplo tan sencillo no utilizaremos bbdd y los datos estarán a fuego.
Utilizaremos un objeto de modelo (bean Usuario) como apoyo para facilitar y simplificar el código.
Como vemos hasta ahora es muy parecido a Struts 1.3.8, excepto en el tema de los formularios. Pasemos a ver cómo implementar nuestra aplicación.
Como somos muy buenos desarrollando y hemos hecho bien antes nuestro trabajo, podemos reutilizar el código que desarrollamos en el artículo sobre los primeros pasos en Struts 1.3.8 (únicamente renombramos el paquete de es.lycka.holamundoStruts138 -> es.lycka.holamundoStruts2014) para :
es.lycka.holamundoStruts138.model.Usuario
es.lycka.holamundoStruts138.negocio.IdentificarBO
es.lycka.holamundoStruts138.persistencia.IdentificarDAO
index.jsp
Con respecto a Struts 1.3.8, únicamente cambia las taglibs. Ejemplos de los enlaces.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Hola Mundo</title>
</head>
<body>
<h1>Lycka te da la bienvenida!</h1>
<p>Bienvenido a nuestra aplicación de Hola Mundo</p>
<p>
Usted
...