Vous êtes sur la page 1sur 36

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" %>
<logic:forward name="welcome"/>

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" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//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-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">
</head>
<body>
Bienvenido!
<br>
<html:link action="bookList">Mostrar lista de libros</html:link>
</body>

http://www.laliluna.de/tutorial-struts-eclipse-espanol.html 13-06-2007
Primeros pasos usando struts y eclipse tutorial Página 9 de 36

</html:html>

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 Página 19 de 36

Java
security in
web
application
(Mar. 05,
2007)
New log4j
tutorial
(Feb. 23,
2007)
Navigation
Hibernate
annotation
Search - book
Homepage update
Blog (Nov. 20,
Tutorial and EBook 2006)
Shop New
Hibernate 3 book Website
released online
References (Aug. 29,
Tutorials 2006)
Tutoriales (español) Update of
Java trainings Hibernate
eBook
Bugs and Exceptions
(Aug. 22,
Links/Tips 2006)
Feedback Cree un Forward pata la Action Mapping del JSP con el nombre showList
New EJB 3
Disclaimer Struts
tutorial
(Mar. 17,
2006)
EJB 3 and
Ant
(Mar. 17,
2006)
First EJB 3
Tutorial

http://www.laliluna.de/tutorial-struts-eclipse-espanol.html 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"%>
<html>
<head>
<title>Show book list</title>
</head>
<body>
<table border="1">
<tbody>
<%-- set the header --%>
<tr>
<td>Author</td>
<td>Book name</td>
<td>Available</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<%-- check if book exists and display message or iterate over books --%>
<logic:empty name="bookListForm" property="books">
<tr>
<td colspan="5">No books available</td>
</tr>
</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>

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 --%>
<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

http://www.laliluna.de/tutorial-struts-eclipse-espanol.html 13-06-2007
Primeros pasos usando struts y eclipse tutorial Página 22 de 36

 ActionForm

 Configuración Struts

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" %>

<html>
<head>

http://www.laliluna.de/tutorial-struts-eclipse-espanol.html 13-06-2007
Primeros pasos usando struts y eclipse tutorial Página 31 de 36

<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>

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 <html:hidden property="do" value="saveBook" />

<%-- Campo oculto que contiene el id del libro --%>


<html:hidden property="id" />

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"%>
<html>
<head>
<title>Show book list</title>
</head>
<body>
<table border="1">
<tbody>
<%-- set the header --%>
<tr>
<td>Author</td>
<td>Book name</td>
<td>Available</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<%-- check if book exists and display message or iterate over books --%>
<logic:empty name="bookListForm" property="books">
<tr>
<td colspan="5">No books available</td>
</tr>

http://www.laliluna.de/tutorial-struts-eclipse-espanol.html 13-06-2007
Primeros pasos usando struts y eclipse tutorial Página 33 de 36

</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 book --%>
<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:

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