Primeros pasos usando struts y eclipse tutorial
Página 1 de 36
Tutorials for Hibernate, EJB 2, EJB 3 Struts, JavaServerfaces (JSF) Tomcat, JBoss, Myeclipse, Eclipse and other Tutoriales (español) » Primeros pasos usando struts y eclipse Sprache / Language
Primeros pasos usando struts y eclipse tutorial Esta tutorial explicará los primeros pasos usando los struts de Apache como framework para internet y eclipse como ambiente de desarrollo. Crearemos un ejemplo simple de una aplicaión para biblioteca usando plugins libres como la consola Struts y JBOSS IDE.
Información General Autor : Sebastian Hennebrüder Sascha Wolski http://www.laliluna.de/tutorials.html Tutoriales para Struts, EJB, eclipse y xdoclet. Traducción: Sebastian Arechederreta Dato : Enero, 20 th 2005 Herramientas De Desarrollo Eclipse 3.x Consola struts
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 2 de 36
JBOSS IDE (al usar JBOSS) Sysdeo plugin (al usar Tomcat) Código fuente: http://www.laliluna.de/assets/tutorials/first_steps_with_struts.zip
Uso del código fuente. El código fuente no incluye ninguna de las bibliotecas solo los fuentes. Cree un proyecto web, agregue las bibliotecas manualmente según lo explicado en este tutorial. Luego extraiga los códigos fuentes, que proporcionamos, a su proyecto. La versión pdf de este tutorial (en inglés). http://www.laliluna.de/assets/tutorials/first_steps_with_struts_es.pdf
Tabla de contenido Primeros pasos usando struts y eclipse 1 Información general 1 Requisitos 1 Instalación de la consola struts 2 Crear un proyecto web 2 Agregando soporte struts 2
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 3 de 36
Crear una página de bienvenida por defecto 4 Global Action Forwards y Action Mapping 5 Caso de uso: lista de libros 6 Caso de uso: Agregar, editar y borrar datos 15 Cambios a la lista de libros JSP 21 Prueba de la aplicación 22
Requisitos Requerimientos para la instalación de JBOSS IDE, cuando está utilizando JBOSS como servidor de aplicación. Una tutorial de cómo crear y distribuir proyectos web con la JBOSS IDE se puede encontrar aquí. http://www.laliluna.de/webprojects-eclipse-jbosside-tutorial-en.html
Cuando se utiliza Tomcat, se puede utilizar el plugin de eclipse http://www.sysdeo.com/eclipse/tomcatPlugin.html como alternativa.
Instalación de la consola struts Descargue los fuentes del website http://www.jamesholmes.com/struts/console/
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 4 de 36
Descomprima el archivo y copie el directorio com.jamesholmes.console.struts a la carpeta de plugins de eclipse Inicie eclipse y eso es todo.
Cree un proyecto web La creación de un proyecto web con la IDE JBOSS se explica en este tutorial http://www.laliluna.de/webprojects-eclipse-jbosside-tutorial-en.html el cuál fue mencionado en los requisitos. Desarrolle un proyecto web como se explica allí.
Agregando soporte struts Por ahora el proyecto es un proyecto normal de JEE, así que necesitamos agregar las capacidades de los struts (bibliotecas, archivos xml...). La manera más fácil es copiar un poryecto struts en blanco en su proyecto. Usted puede descargar un proyecto en blanco aquí. http://www.laliluna.de/assets/tutorials/struts-blanc-project-1.2.zip Descomprima el contenido del proyecto struts en blanco en el espacio de trabajo de eclipse donde esta su proyecto. Actualice el proyecto en el explorador del paquete presionando el botón derecho del ratón - > el comando "refresh" (Actualizar). Su proyecto ahora se parece el siguiente.
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 5 de 36
Agregando las bibliotecas de struts Ahora usted debe agregar las bibliotecas a su classpath. Botón derecho sobre el proyecto y seleccione "properties" en el menú de contexto. Seleccione "Java Build Path" y "Add jars" en la lengüeta de las bibliotecas.
Usted encontrará los archivos JAR en Project > WebRoot > WEB-INF > lib . Utilice SHIFT para
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 6 de 36
seleccionar múltiples archivos jar.
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 7 de 36
Las bibliotecas de struts ahora aparecerán en el explorador de paquete.
Cree una página de bienvenida por defecto Bien, ahora deseamos crear una página por defecto. Botón derecho (sí otra vez) en la carpeta WebRoot en el proyecto y elija ?New? > JSP. Si usted no puede encontrar esta opción, seleccione "other" y entonces JSP. ¡Usted debe tener instalado el JBOSS IDE! Cree un JSP nuevo en el directorio WebRoot.
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 8 de 36
Usted encontrará el archivo index.jsp en la carpeta WebRoot del proyecto. Debemos agregar las bibliotecas de etiqueta de struts a nuestro JSP. Necesitamos bibliotecas de etiqueta (Tag Libraries)para utilizar etiquetas de struts en un JSP. En este caso necesitamos solamente la biblioteca de la lengüeta de la lógica de struts. Cambie su contenido de JSP al siguiente. <% @page contentType="text/html" %> <% @page language="Java" %> <% @taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
La etiqueta logic:forward hace que Struts busque una redirección (forward) en el archivo de configuración. Cuando no se puede encontrar esta redirección occure una excepción. Explicamos la action forward en el capítulo siguiente.
Cree un segundo JSP index.jsp en el directorio/WebRoot/jsp. Cambie el JSP a lo siguiente:
<%@ page language="java"%> <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
index.jsp <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="Esta es mi página"> Bienvenido!
Mostrar lista de libros
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 9 de 36
Global Action Forwards y Action Mappings ¿Qué es una acción de redirección (action forward)? Una acción de redirección se puede utilizar para redireccionar a un jsp o a un mapa de acción (action mapping). Hay dos acciones de redirección diferentes. La redirección de acción global y la de acción local. Usted puede tener acceso a una redirección de acción global en cada jsp o en la clase Action. Una redirección de acción local solamente puede ser accedida por la clase asignada.
¿Qué es un mapa de acción (action mapping)? El mapa de acción es el corazón de struts. Maneja todas las acciones entre la aplicación y el usuario. Usted puede definir qué acción será ejecutada creando un mapa de acción (Action Mapping). El diagrama le muestra, cómo el servidor de aplicación maneja la petición del index.jsp o una acción no mapeada.
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 10 de 36
En el primer paso creamos una nueva acción mapeada. Abra el archivo struts-config.xml de la configuración de struts, que está situado en WebRoot/WEB-INF. Se abre la consola de struts. (si no, botón derecho sobre struts-config.xml y seleccióne "open with".
Marque Action Mapping y y seleccione Add. Escriba /default como Path y seleccione el tipo de acción Forward. Usaremos como página de bienvenida /jsp/default.jsp
En el paso siguiente crearemos la acción global forward. Marque "Global Forwards", seleccione "add". Elija /default.do como Path, que es la acción que especificamos antes.
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 11 de 36
Caso de uso: Listar los libros Una acción de struts siempre hace una cierta lógica del negocio y guarda el resultado en una clase del tipo ActionForm. Los datos del ActionForm se pueden mostrar en un JSP. Nuestra Action leerá datos de una base de datos, guardandolos en ActionForm. El JSP exhibirá nuestros datos.
Crear una clase "Libro" (?Book?) Cree una clase nueva ?Libro? en el paquete de.laliluna.tutorial.library.
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 12 de 36
La clase Libro representa un libro con las propiedades: id, autor, título y disponibilidad.(id, author, title y available) Cree cuatro variables.
Cree un getter y un setter para cada una de las variables. Botón derecho en su clase, Source > Generate Getters and Setters
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 13 de 36
Elija seleccionar todo (Select All) y Last Method en Insertion Point
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 14 de 36
Agregue dos constructores a la clase para fijar las propiedades en la inicialización de la clase.
// Contructor public Book(){ } // Contructor para propiedades iniciales public Book(long id, String author, String title, boolean available) { this.id = id; this.author = author; this.title = title; this.available = available; }
¡Eso es todo para nuestra clase libro!
Crear un form bean, action form y jsp Cree una nueva sub clase de ActionForm. El ActionForm contendrá nuestros libros para exhibirlos en el JSP.
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 15 de 36
Abra struts-config.xml y agregue un nuevo form bean con la consola de struts. El tipo es nuestra última clase creada.
Cambie el código fuente de la clase action form. Abra el archivo BookListForm.java y cambie el código fuente:
public class BookListForm extends ActionForm { private Collection books; /* lalinuna.de 02.11.2004 * obtiene la collection de libros */ public Collection getBooks() { return books; } /* lalinuna.de 02.11.2004
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 16 de 36
* establece la collection de libros */ public void setBooks(Collection books) { this.books = books; } /* lalinuna.de 02.11.2004 * limpia la collection de libros */ public void reset(ActionMapping arg0, HttpServletRequest arg1) { books = new ArrayList(); } }
En nuestra clase hemos definido cada vez una colección de libros y los métodos de acceso (getters y setters).El método reset es llamado por struts cada vez que un formulario es inicializado. Cuando su estructura es requerida, éste es en cada petición.
Crear un Action Mapping y una Action Class. Cree una clase BookListAction. Esta clase carga los libros de la base de datos y los guarda en BookListForm.
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 17 de 36
Cambie el código fuente de la clase Action. Abra la clase bookListAction e implemente el método execute desde la super clase ActionForm. La llamada siguiente mapping.findForward("showList") busca un forward con el nombre "showList" en la declaración del Action Mapping el declaración y se redirecciona. /** * Method execute * @param mapping * @param form * @param request * @param response * @return ActionForward */ public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { BookListForm bookListForm = (BookListForm) form;
/* lalinuna.de 03.11.2004 * inicia la clase SimulateDB y pone algunos datos */ SimulateDB simulateDB = new SimulateDB(); bookListForm.setBooks(simulateDB.getAllBooks(request.getSession()));
return mapping.findForward("showList"); }
Clase SimulateDB No utilizaremos una base de datos verdadera en este tutorial sino una simulación de la base de datos. Copie el archivo SimulateDB.java del código fuente que proporcionamos como una descarga arriba del paquete de.laliluna.tutorial.library.
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 18 de 36
Configuración struts para la lista de libros Cree una nueva Action Mapping con la consola de struts. La ruta debe comenzar con un /, el tipo es la acción que acabamos de crear.
Marque en Action Mapping en la consola Struts para acceder a la configuración avanzada. News
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Navigation Search
Homepage Blog Tutorial and EBook Shop Hibernate 3 book released References Tutorials Tutoriales (español) Java trainings Bugs and Exceptions Links/Tips Feedback Disclaimer
Cree un Forward pata la Action Mapping del JSP con el nombre showList
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
Página 19 de 36
Java security in web application (Mar. 05, 2007) New log4j tutorial (Feb. 23, 2007) Hibernate annotation - book update (Nov. 20, 2006) New Website online (Aug. 29, 2006) Update of Hibernate eBook (Aug. 22, 2006) New EJB 3 Struts tutorial (Mar. 17, 2006) EJB 3 and Ant (Mar. 17, 2006) First EJB 3 Tutorial
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 20 de 36
(Mar. 15, 2006)
Crear la lista de libros JSP Cree un nuevo JSP en la carpeta /jsp/ , nombrelo bookList.jsp . <%@ page language="java"%> <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%> <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%> <%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic"%>
Show book list <%-- set the header --%> Author | Book name | Available | | |
<%-- check if book exists and display message or iterate over books --%> No books available |
<%-- print out the book informations --%> | | |
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 21 de 36
<%-- print out the edit and delete link for each book --%> Edit | Delete |
<%-- end interate --%>
La marca
recorre la colección de libros del form bean bookListForm Con la marca se tiene acceso a las propiedades de un libro. La marca muestra la propiedad (author, title) de la posición actual. crea una casilla de verificación.
Esto es producción fuuuhh, tenemos nuestro form Bean con una Action Form Class, nuestro Action Mapping con su Action Class y JSP, y los servicios necesarios activos. Muy bien. Tenemos que crear un action class que gaurde los datos en un action form. Para mostrar la lista de libros hemos creado un JSP que utiliza los datos en action form. Fácil, no?. Si quiere puede hacer una prueba de la aplicación ahora. Mire al final del tutorial como probarla.
Caso de uso: Agregar, editar y borrar datos En la sección siguiente agregamos las funcionalidades de Agregar, Editar y Borrar datos. El proceso es el mismo:
Action
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
ActionForm
Configuración Struts
Página 22 de 36
Nuevo form bean Cree una nueva clase como action form en el paquete de.laliluna.tutorial.library.form . Denominelo BookEditForm. Agregue una nueva instancia de libro (Book). Book book = new Book();
Genere los getters y setters. Luego herede todos los métodos de la clase Book.
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 23 de 36
El código fuente debería ser como este: public class BookEditForm extends ActionForm { Book book = new Book(); public Book getBook() { return book; } public void setBook(Book book) { this.book = book; } public boolean equals(Object arg0) { return book.equals(arg0);
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 24 de 36
} public String getAuthor() { return book.getAuthor(); } public long getId() { return book.getId(); } public String getTitle() { return book.getTitle(); } public int hashCode() { return book.hashCode(); } public boolean isAvailable() { return book.isAvailable(); } public void setAuthor(String author) { book.setAuthor(author); } public void setAvailable(boolean available) { book.setAvailable(available); } public void setId(long id) { book.setId(id); } public void setTitle(String title) { book.setTitle(title); } public String toString() { return book.toString(); } }
Ahora podemos acceder a los atributos de libro en el action form.
Crear la action class Cree una nueva clase. Esta vez la clase no es una sub clase de Action pero sí de org.apache.struts.DispatchAction.
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 25 de 36
Un DispatchAction no ejecuta métodos pero puede tener diferentes métodos dependiendo del parámetro. Con el parámetro podemos decidir si el método llamado es crear/editar/borrar.
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 26 de 36
Código fuente de la clase DispatchAction Abra el archivo bookEditAction.java. Agregue los métodos: /** * Method editBook * @param mapping * @param form * @param request * @param response * @return ActionForward */ public ActionForward editBook( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { BookEditForm bookEditForm = (BookEditForm) form; /* lalinuna.de 04.11.2004 * obtiene el id del libro de la solicitud */ long id = Long.parseLong(request.getParameter("id")); /* lalinuna.de 04.11.2004 * inicia la clase SimulateDB y obtiene un libro por id */ SimulateDB simulateDB = new SimulateDB(); bookEditForm.setBook(simulateDB.loadBookById(id, request.getSession())); return mapping.findForward("showEdit"); }
El método editBook obtiene el parámetro id de la solicitud y lee el libro según el id desde la base de datos simulada. El forward showEdit se refiere a la página bookEdit.jsp /** * Method deleteBook
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 27 de 36
* @param mapping * @param form * @param request * @param response * @return ActionForward */ public ActionForward deleteBook( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { BookEditForm bookEditForm = (BookEditForm) form; /* lalinuna.de 04.11.2004 * obtiene el id del libro de la solicitud */ long id = Long.parseLong(request.getParameter("id")); /* lalinuna.de 04.11.2004 * inicia la clase SimulateDB y borra un libro según el id */ SimulateDB simulateDB = new SimulateDB(); simulateDB.deleteBookById(id, request.getSession()); return mapping.findForward("showList"); }
El método deleteBook obtiene el id de la solicitud y elimina el libro de la base de datos simulada. El forward showList actualiza la lista de libros con la página bookList.jsp /** * Method addBook * @param mapping * @param form * @param request * @param response * @return ActionForward */ public ActionForward addBook( ActionMapping mapping, ActionForm form,
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 28 de 36
HttpServletRequest request, HttpServletResponse response) { BookEditForm bookEditForm = (BookEditForm) form; return mapping.findForward("showAdd"); }
El método addBook se refiere a la página bookAdd.jsp /** * Method saveBook * @param mapping * @param form * @param request * @param response * @return ActionForward */ public ActionForward saveBook( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { BookEditForm bookEditForm = (BookEditForm) form; /* lalinuna.de 04.11.2004 * inicia la clase SimulateDB y obtiene los datos según id */ SimulateDB simulateDB = new SimulateDB(); simulateDB.saveToDB(bookEditForm.getBook(), request.getSession()); return mapping.findForward("showList"); }
El último método obtiene el libro del form bean bookEditForm y lo guarda en la base de datos simulada. Luego la aplicación muestra la lista de libros.
Configuración Struts Cree un nuevo form bean con la consola struts.
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 29 de 36
Cree un nuevo action mapping. Como parámetro especifique do. Este parámetro es necesario para el DispatchAction.
Cambie el Action.
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 30 de 36
Cree tres forwards en la lengüeta ?forward tab?. Uno para el JSP que edita, otro para el JSP que agrega y otro para el que muestra la lista de libros.
El último forward no irá a ningun JSP pero sí a otra acción.
Cree un JSP llamado bookAdd.jsp en la carpeta /WebRoot/jsp. El forward showAdd apuntará a esta página.
Cambie el código fuente del JSP Abra el archivo bookAdd.jsp y agregue el siguiente código.
<%@ <%@ <%@ <%@
page language="java"%> taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%> taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%> taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 31 de 36
Agregar un libro <%-- crear un formulario html --%> <%-- Mostrar los datos del formulario --%> Autor: | |
Título: | |
Disponible: | |
Guardar |
<%-- fijar el parámetro para dispatch action --%>
La etiqueta crea un nuevo formulario HTML y se refiere con el parámetro action=?bookEdit? al action mapping. La etiqueta crea un campo de texto con la propiedad autor del libro. es un campo oculto con el nombre do. Necesitamos este campo oculto, porque le dice a la clase dispatch action que método será llamado. Abra el archivo bookEdit.jsp. Puede usar el código del archivo bookAdd.jsp y cambiar las siguientes líneas. Editar un libro
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 32 de 36
Agregue la siguiente línea <%-- Campo oculto que contiene el id del libro --%>
Cambios a la lista de libros JSP Abra el archivo bookList.jsp y cambie el código fuente:
<%@ page language="java"%> <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%> <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%> <%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic"%> Show book list <%-- set the header --%> Author | Book name | Available | | |
<%-- check if book exists and display message or iterate over books --%> No books available |
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 33 de 36
<%-- print out the book informations --%> | | | <%-- print out the edit and delete link for each book --%> Edit | Delete |
<%-- print out the add link --%> Add a new book |
<%-- end interate --%>
Ahora, hemos finalizado toda la codificación y podemos probar la aplicación.
Prueba de la aplicación Inicie jboss y convierta el proyecto a un archivo paquete. (Esto está explicado en el tutorial JBOSS IDE, mencionado anteriormente). Llame al proyecto en su navegador favorito:
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 34 de 36
http://localhost:8080/LibraryWeb/
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 35 de 36
Felicitaciones, estas muy cerca de ser un experto en struts. ;-)
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007
Primeros pasos usando struts y eclipse tutorial
Página 36 de 36
Copyright (c) 2004-2006 by Sebastian Hennebrueder, laliluna.de Impressum
http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
13-06-2007