Tutorials for Hibernate, EJB 2, EJB 3 Struts, JavaServerfaces (JSF) Tomcat, JBoss, Myeclipse, Eclipse and other 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 Tutoriales (espa ñ ol) » Primeros pasos usando struts y eclipse Sprache / Language Página 1 de 36 Primeros pasos usando struts y eclipse tutorial 13-06-2007 http://www.laliluna.de/tutorial-struts-eclipse-espanol.html
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Tutorials for Hibernate, EJB 2, EJB 3 Struts, JavaServerfaces (JSF) Tomcat, JBoss, Myeclipse, Eclipse and other
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
Tutoriales (español) » Primeros pasos usando struts y eclipse Sprache / Language
Página 1 de 36Primeros pasos usando struts y eclipse tutorial
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.
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í.
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.
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.
Página 7 de 36Primeros pasos usando struts y eclipse tutorial
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.
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/ta gs-html" prefix="html" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transi tional//EN"> <html:html locale="true"> <head> <html:base /> <title>index.jsp</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-ca che"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,k eyword2,keyword3"> <meta http-equiv="description" content="Esta es mi página"> </head> <body> Bienvenido! <br> <html:link action="bookList">Mostrar lista de l ibros</html:link> </body>
Página 8 de 36Primeros pasos usando struts y eclipse tutorial
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.
Página 9 de 36Primeros pasos usando struts y eclipse tutorial
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.
Página 10 de 36Primeros pasos usando struts y eclipse tutorial
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.
Página 11 de 36Primeros pasos usando struts y eclipse tutorial
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
Página 15 de 36Primeros pasos usando struts y eclipse tutorial
* 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, HttpS ervletRequest 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.
Página 16 de 36Primeros pasos usando struts y eclipse tutorial
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 dat os */ SimulateDB simulateDB = new SimulateDB(); bookListForm.setBooks(simulateDB.getAllBooks(re quest.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.
Página 17 de 36Primeros pasos usando struts y eclipse tutorial
HomepageBlogTutorial and EBook ShopHibernate 3 book releasedReferencesTutorialsTutoriales (español)Java trainingsBugs and ExceptionsLinks/TipsFeedbackDisclaimer
Cree un Forward pata la Action Mapping del JSP con el nombre showList
Java security in web application(Mar. 05, 2007) New log4jtutorial(Feb. 23, 2007) Hibernateannotation - book update(Nov. 20, 2006) New Websiteonline(Aug. 29, 2006) Update ofHibernate eBook(Aug. 22, 2006) New EJB 3Struts tutorial(Mar. 17, 2006) EJB 3 andAnt (Mar. 17, 2006) First EJB 3Tutorial
Página 19 de 36Primeros pasos usando struts y eclipse tutorial
<%-- print out the edit and delete link for each bo ok --%> <td ><html:link action ="bookEdit.do?do=editBook" paramName="book" paramProperty ="id" paramId ="id" >Edit </ html:link ></ td > <td ><html:link action ="bookEdit.do?do=deleteBook" paramName="book" paramProperty ="id" paramId ="id" >Delete </ html:link ></ td > </ tr > </ logic:iterate > </ logic:notEmpty > <%-- end interate --%> </ tbody > </ table > </ body > </ html >
La marca <logic:iterate> recorre la colección de libros del form bean bookListForm Con la marca <logic:iterate> se tiene acceso a las propiedades de un libro. La marca <bean:write> muestra la propiedad (author, title) de la posición actual. <html:checkbox> 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
Página 21 de 36Primeros pasos usando struts y eclipse tutorial
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);
Página 23 de 36Primeros pasos usando struts y eclipse tutorial
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.
Página 25 de 36Primeros pasos usando struts y eclipse tutorial
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, re quest.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
Página 26 de 36Primeros pasos usando struts y eclipse tutorial
* @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
<title>Agregar un libro</title> </head> <body> <%-- crear un formulario html --%> <html:form action="bookEdit"> <%-- Mostrar los datos del formulario --%> <table border="1"> <tr> <td>Autor:</td> <td><html:text property="author" /></td> </tr> <tr> <td>Título:</td> <td><html:text property="title" /></td> </tr> <tr> <td>Disponible:</td> <td><html:checkbox property="available" /></td> </tr> <tr> <td colspan="2"> <html:submit>Guardar</html:submit> </td> </tr> </table> <%-- fijar el parámetro para dispatch action --%> <html:hidden property="do" value="saveBook" /> </html:form> </body> </html>
La etiqueta <html:form> crea un nuevo formulario HTML y se refiere con el parámetro action=?bookEdit? al action mapping. La etiqueta <html:text> crea un campo de texto con la propiedad autor del libro. <html:hidden> 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.
<title>Editar un libro</title>
Página 31 de 36Primeros pasos usando struts y eclipse tutorial
</ logic:empty > <logic:notEmpty name="bookListForm" property ="books" > <logic:iterate name="bookListForm" property ="books" id ="book" > <tr > <%-- print out the book informations --%> <td ><bean:write name="book" property ="author" /></ td > <td ><bean:write name="book" property ="title" /></ td > <td ><html:checkbox disabled ="true" name="book" property ="available" /> </ td > <%-- print out the edit and delete link for each bo ok --%> <td ><html:link action ="bookEdit.do?do=editBook" paramName="book" paramProperty ="id" paramId ="id" >Edit </ html:link ></ td > <td ><html:link action ="bookEdit.do?do=deleteBook" paramName="book" paramProperty ="id" paramId ="id" >Delete </ html:link ></ td > </ tr > </ logic:iterate > </ logic:notEmpty > <%-- print out the add link --%> <tr > <td colspan ="5" ><html:link action ="bookEdit.do?do=addBook" >Add a new book </ html:link > </ td > </ tr > <%-- end interate --%> </ tbody > </ table > </ body > </ html >
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:
Página 33 de 36Primeros pasos usando struts y eclipse tutorial