Вы находитесь на странице: 1из 16

28-8-2012

CHALOO

VALIDAR DATOS CON STRUTS2 EN ECLIPSE

Primeros inicios con Struts2 | Carlos

Validar datos con struts2 en eclipse


Ao de la Integracin Nacional y el Reconocimiento de Nuestra Diversidad

Trabajo de investigacin: TUTORIAL VALIDACION DE DATOS CON STRUTS2

Autor: CHATA YAURI, CARLOS

Autor: Carlos R. Chata Yauri

Pgina 1

Validar datos con struts2 en eclipse

Struts 2
INTRODUCCION:
Struts 2 es un Framework que permite desarrollar de manera fcil aplicaciones web en la plataforma Java EE (Enterprise Edition), teniendo como base el patrn MVC (Modelo, Vista y Controlador). El MVC es en s un modelo de arquitectura que busca separa la lgica de negocio, el modelo de datos y las interfaces de usuario en tres componentes diferentes. El Modelo es bsicamente datos de la aplicacin y las reglas de negocio, que seran los Actions en Struts 2. La Vista puede ser cualquier tecnologa de vista como los JSP, los Tiles, entre otros. Estos son el medio por el cual el usuario podr interactuar con la aplicacin. En Struts 2, son los Results. El Controlador es el intermediario entre la Vista y el Modelo, ante las peticiones generadas por el Cliente en la Vista. As, ste se encarga de invocar al Modelo cualquier cambio en los datos de la aplicacin, para que pueda ser devuelta a la Vista, como respuesta ante la peticin del usuario. En Struts 2, esta tarea la realiza el FilterDispatcher.

Struts 2 nace de la fusin de la versin anterior de Apache Struts y WebWork, este ltimo desarrollado por OpenSymphony. Struts 2 tiene como objetivo simplificar el desarrollo durante todo el ciclo de vida del producto software. Brindando mayor escalabilidad y mantenibilidad a las aplicaciones web a lo largo del tiempo. Este Framework trae muchas ventajas, que hacen posible el desarrollo rpido y eficaz de Aplicaciones Web. Con ste se puede realizar la validacin, internacionalizacin de los datos sin realizar tantas configuraciones. Asimismo, trae muchos nuevos y mejorados controles que facilitan las tareas del desarrollador. De igual manera, ofrece controles AJAX que son integrados a las vistas como si fueran otros controles estndares del Framework. Esto ofrece mayor dinamismo en las pginas web, permitiendo que el usuario pueda interactuar fcilmente con ellos.

Autor: Carlos R. Chata Yauri

Pgina 2

Validar datos con struts2 en eclipse


Fundamentos de Struts2
Struts2 es un Framework que implementa el patrn de arquitectura MVC en Java.Esta organizada de manera independiente las capas: Model(Objetos del Modelo del Negocio). View (interfaz con el usuario u otro sistema usando tecnologa como jsp, tiles de struts, hoja de estilo, etc) y la capa Controller (controlador del flujo de la aplicacion). Se muestra a continuacin, el esquema bsico de funcionamiento de esta arquitectura. La capa Modelo en Struts 2 inicia con los componentes Action. Enseguida del Action se tendrn diversos componentes: Services (Lgica pura de negocios). DAOs (objetos de persistencia de datos), entre otros.

Se muestra, a continuacin, el esquema bsico de la arquitectura MVC implementado por el Framework Struts 2.

Web Browser Client

request

Controller FilterDispatcher
invoke action

render page

Model Action

select result

View Result

Autor: Carlos R. Chata Yauri

Pgina 3

Validar datos con struts2 en eclipse


Una caracterstica tpica de la capa View de Struts 2 es el uso de unos componentes especiales denominados Results. Estos normalmente son representados por una pgina JSP, sin embargo, puede constituir, tambin, flujos de bytes, objetos del Framework Tiles, etc.

Configuracin de aplicaciones.
La Arquitectura MVC funciona en Struts 2 bsicamente de la siguiente manera: a travs de un navegador se genera una solicitud. Esta es capturada por la capa Controller (implementada por el componente FilterDispatcher representado por un nico filtro especializado). Este filtro analizara la solicitud y verificara si el componente invocado se encuentra registrado en el archivo de configuracin XML de Struts 2. Este tiene por defecto el nombre struts.xml. El componente invoca normalmente un Action de Struts 2, instanciara y/o utilizara diversos objetos de negocio para concretar la tarea solicitada. Segn el resultado que retorne el componente Action, la capa Controller derivara la respuesta generada a un objeto Result (normalmente un pgina JSP).

Ejemplo: Aplicacin web bsica de Struts 2 validar dato del formulario.


Se realizara una aplicacin web con los componentes mnimos para el correcto funcionamiento de Struts 2.Implementaremos, entre muchas ventajas que trae como la validacin, internacionalizacin, etc., la validacin de datos en un formulario jsp. El proyecto se llamara: Struts02Validar. La arquitectura del proyecto se describe en la siguiente figura.

Autor: Carlos R. Chata Yauri

Pgina 4

Validar datos con struts2 en eclipse

Archivo de configuracin de Struts 2 struts.xml

Es el archivo para validar campos de nuestro Formulario. La sintaxis es llevar el mismo nombre de la clase java y completar el nombre con -validation.xml, siempre dentro del mismo paquete, en este caso beanValidar.

Libreras necesarias para un Proyecto de Struts 2

Autor: Carlos R. Chata Yauri

Pgina 5

Validar datos con struts2 en eclipse


Importante: es necesario agregar las libreras en la carpeta WebContent/WEB-INF/lib. Asimismo ser indispensable copiar el archivo struts.xml dentro de la carpeta src.

Primer paso: Crear el proyecto con el nombre: Struts02Validar.

Autor: Carlos R. Chata Yauri

Pgina 6

Validar datos con struts2 en eclipse

En el checkbox marcamos generate web.xml deployment descriptor y luego Finish.

Segundo paso: registrar el filtro controlador en el web.xml, que ser de esta


forma.
<?xml version="1.0" encoding="UTF-8"?> <!-- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter --> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>Struts02Validar</display-name> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>usuario.jsp</welcome-file> </welcome-file-list> </web-app>

Autor: Carlos R. Chata Yauri

Pgina 7

Validar datos con struts2 en eclipse


En este archivo se registra el Filtro Controlador del Framework Struts 2. Este captura todas las peticiones generadas por el cliente, puesto que en el urlpattern tiene como valor /* Importante: para ejecutar esta aplicacin, recuerde que es necesario disponer de un servidor de aplicaciones o contenedor web, como el Apache Tomcat 7 que en este proyecto lo estamos usando.

Tercer paso: creacin del componente Action. Crearemos un Action que lo


llamaremos Formulario.java dentro del paquete beanValidar. Para este caso solo tendremos los atributos nombre y apellido con sus respectivos getters y setters. Adems es importante que esta clase herede de la clase ActionSupport para poder realizar las validaciones y otras funciones adicionales. El cdigo que se ejecutara al invocar a este action estar contenido dentro del mtodo execute().

package beanValidar; import com.opensymphony.xwork2.ActionSupport;; public class Formulario extends ActionSupport{ private String nombre; private String apellido; public String execute() throws Exception { System.out.println("procesando el execute de Login"); System.out.println("Nombre: " + nombre); System.out.println("Apellido: " + apellido); return SUCCESS; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getApellido() { return apellido; } public void setApellido(String apellido) { this.apellido = apellido; } }

Autor: Carlos R. Chata Yauri

Pgina 8

Validar datos con struts2 en eclipse

Cuarto paso: registrar el Action en el archivo struts.xml. Ahora


registraremos nuestra clase Formulario.java. Para ello es necesario que asignemos un nombre a nuestra clase java, un alias, el cual nos servir para invocar posteriormente desde nuestro forms (en este caso sera usuario.jsp). Asimismo, debemos detallar la clase a la que pertenece nuestro Action. Por otro lado tambin podemos especificar el mtodo que ser ejecutado al invocar nuestro Action. Adems, dentro de cada registro action, tenemos la etiqueta result, donde colocaremos las vistas a la que ser direccionado el usuario ante un determinado evento.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="false" /> <package name="example" namespace="/" extends="struts-default"> <action name="Welcome"> <result>/usuario.jsp</result> </action> <action name="Formulario" class="beanValidar.Formulario"> <result name="input">/usuario.jsp</result> <result name="error">/usuario.jsp</result> <result name="success">/bienvenido.jsp</result> <!-- <result>/bienvenido.jsp</result> --> </action> </package> </struts>

Por ejemplo, si los datos del formulario no han sido ingresados correctamente, debemos colocar el valor de "input" en el result para que sea devuelto a la misma pgina. De lo contrario, si todos los campos han sido validados y la operacin se realiz satisfactoriamente, se colocar el valor de "success" para continuar, donde en este caso se le re direccionar al usuario a otra vista, en este caso a la pgina de bienvenido.jsp.

Autor: Carlos R. Chata Yauri

Pgina 9

Validar datos con struts2 en eclipse

Quinto paso: crear el archivo validation.xml. Este archivo nos servir para

validar campos de nuestro form. Para ello, debemos nombrar al archivo de la siguiente manera: MiAction-validation.xml. En nuestro ejemplo, ser llamado Formulario-validation.xml. A continuacin, podemos observar las validaciones correspondientes a cada uno de nuestros atributos: nombre y apellido.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <field name="nombre"> <field-validator type="requiredstring"> <message>Debe ingresar su nombre</message> </field-validator> </field> <field name="apellido"> <field-validator type="requiredstring"> <message>Debe ingresar su apellido</message> </field-validator> </field> </validators>

Importante: recuerde que este archivo de validacin debe ubicarce en el mismo paquete que la clase Action, en este caso seria Formulario.java.

Sexto paso: crear las vistas JSPs. Ahora, en el WebContent creamos


nuestras vistas: usuario.jsp y bienvenido.jsp. El contenido de usuario.jsp ser un form que invocar a nuestro action, registrado anteriormente en nuestro archivo struts.xml. ste contendr los campos, como se muestran a continuacin:
<%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <html> <head>

<s:head/>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> Importante etiqueta para el formateo </head> de advertencia de validacin de los <body> <s:form action="Formulario"> datos .Pinta de rojo. <s:textfield name="nombre" label="Nombre" /> <s:textfield name="apellido" label="Apellido" /> <s:submit value="Continuar" /> <s:reset value="Borrar" /> </s:form> </body>

Autor: Carlos R. Chata Yauri

Pgina 10

Validar datos con struts2 en eclipse


</html>

Mientras, el contenido de bienvenido.jsp ser como el siguiente:


<%@ taglib prefix="s" uri="/struts-tags"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!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>Insert title here</title> </head> <body> <h3> Bienvenido <s:property value="nombre" /> <s:property value="apellido" /> al mundo de Struts 2 </h3> <a href="usuario.jsp">Regresar</a> </body> </html>

Autor: Carlos R. Chata Yauri

Pgina 11

Validar datos con struts2 en eclipse

Referencias:
Desarrollo de Aplicaciones Web I (CIBERTEC). http://www.kamlov.site90.net/?p=613.

Autor: Carlos R. Chata Yauri

Pgina 12

Validar datos con struts2 en eclipse


Anexo: Configuracin del contenedor web Apache Tomcat 7 en eclipse Helios.
Clip derecho new Server y clip ah.

Aparecer la siguiente ventana.

Autor: Carlos R. Chata Yauri

Pgina 13

Validar datos con struts2 en eclipse

Nos dirigimos al link Add, que est a la derecha, para buscar la carpeta del Apache Tomcat que en este caso lo copie en C:\apache-tomcat-7.0.16. Le damos clip y aparece la siguiente ventana, y nos vamos a Browse para buscar la carpeta raz del contenedor Apache Tomcat 7 y le damos Aceptar, Finish, Finish y listo.

Autor: Carlos R. Chata Yauri

Pgina 14

Validar datos con struts2 en eclipse

Autor: Carlos R. Chata Yauri

Pgina 15

Вам также может понравиться