viernes, 29 de junio de 2007

Struts con NetBeans 5.5 Parte I




Introducción

Podemos encontrar mucha información acerca del Framework Jakarta Struts en la red, por tal motivo este artículo no pretende ser un tutorial de Struts propiamente, sólo es una guía práctica para implementar algunas utilidades con Netbeans 5.5 y Struts 1.2.9.

Crear la Aplicacion Web:

Para crear una nueva aplicación web nos dirigimos a File/New Project:


Asignamos nombre al proyecto:



Y marcamos la opción Struts 1.2.9, notemos como asigna la extensión *.do como predeterminada, esta extensión según he leido no es obligatoría, podemos usar cualquier otra, sin embargo por convención es preferible usarla como lo indica el estandar de struts.



Una vez seleccionadas las opciones, damos clic en finalizar. Apareceré el explorador de proyecto con con su correspondiente árbol de estructura.



Vale la pena que antes de seguir veamos como esta organizado el patrón MVC de Struts.

Este es modelo del caso más simple que se podría presentar en una aplicación basada en struts.

  1. El cliente hace la petición al controlador que a final de cuentas es un servlet, a este servlet se le conoce como action, este es mapeado a través de un archivo xml que generalmente se llama struts-config.xml y que incluye todas las directivas que controlan la aplicación.
  2. Si la acción se encuentra dentro del archivo de configuración, el ActionServlet controlador entrega el control al modelo que general mente es un JavaBean que contiene la lógica del negocio que puede o no estar dentro del mismo Servidor Web ó en un Servidor de Aplicaciones como JBoss ó WebLogic (en forma de EJB).
  3. Este a su vez puede hacer una petición a una capa de persistencia, a una Base de Datos, Archivo XML ó de texto plano. Hasta aquí el flujo se encuentra dentro del modelo.
  4. Una vez obtenidos los métodos ó la información requeridos el controlador retoma el control del flujo para presentar información a través de una pégina JSP la vista ó simplemente ejecutar el método del bean sin presentar ninguna información situación que raramente nos podremos encontrar pero que es posible.
Es muy sencillo crear un proyecto de una aplicación web basada en struts con Netbeans 5.5, ahora vamos a hechar un vistazo a los documentos más importantes del proyecto:

El documento web.xml




En este documento se establecen las directivas de la aplicación, como ya sabemos todo proyecto basado en servlets debe incluir este documento y todos los servlets del proyecto deben ser declarados aquí, de esta forma el contenedor (tomcat) podrá acceder a ellos.
A grandes rasgos el web.xml que utilizamos con struts se compone de las siguientes directivas:

  1. servlet contiene la definicion de los servlets que residiran en el contexto.
    • servlet-name el nombre utilizado para hacer referencia al servlet en este caso se llama action
    • sevlet-class el nombre de la clase del servlet, para struts la clase se llama ActionServlet, todos los peidos que lleguen a nuestra aplicacion struts deben pasar atraves de un action.
      • param-name nombre del parametro
      • param-value el path en donde recide el archivo de configuracion struts-cofig.xml que es el archivo que regira el contexto del framework
    • url-pattern el patrón permite asociar al Servlet de struts con todos los pedidos que tengan la extención .do
      • Es muy importante recordar que de ahora en adelante todos las ligas de referencia que utilicemos en nuetro proyecto se deben asociar a una acción , osea en lugar de mandar llamar a la página pagina.jsp deberemos asociarla a una accion.do que generará la vista ( no preocuparse si esto suena confuso, pues aún n hemos visto como hacer esto, pero digamos que en este concepto radicará el exito de entender ó no el funcionamiento del framework)
    • wlecome-file El archivo de la página que se visualizara al ingresar al entorno de nuestra aplicación creada con struts.

(Nota: Por ahora solo veremos estos parametros)


Bueno, ahora vamos a ver que pasa despues de haber creado nuestra aplicación, así sin habe tecleado una sola línea de código, hacemos clic sobre el icono "Debug Main Project" o con la tecla F5:


Se compilará y hará el despliege del proyecto (deploy), el navegador por defecto (Firefox para este caso) es lanzado y podremos entrar al entorno de la aplicacion que en este caso tiene como pagina de beienvenida la página "index.jsp", cuyo codigo es el siguiente:



Notemos que tiene una liga que hace referencia a la url : "./Welcome.do" , pero en donde rayos esta ese documento?, en realidad no es un dovumento, sino una referencia que Netbeans carga en el struts-cofig.xml y que apunta por así decirlo hacia un archivo JSP que se llama "welcomestruts.jsp" , veamos que si hacemos clic sobre la liga, la barra de navegación del browser mostrara la siguiente URL : http://localhost:8084/ToolShop/Welcome.do


Ahora vamos a ver como lograr que esto pase. Abrimos el documento ./WEB-INF/struts-config.xml