Public Class Private Private: Title Genre
Public Class Private Private: Title Genre
Crear una clase de tipo action con nombre AlbumInfoAction que permita inicializar y mostrar datos sobre un cantante y alguna de sus canciones. Crear los siguientes beans:
public class Song { private String title; private String genre; public Song(String title, String genre) { this.title = title; this.genre = genre; }
Y
public class Artist { private String name; private String bio; public Artist(String name, String bio) { this.name = name; this.bio = bio; }
public String execute() { return "success"; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public Artist getArtist() { return artist; } public void setArtist(Artist artist) { this.artist = artist; } public List<Song> getSongs() { return songs; } }
<struts> <package name="default" extends="struts-default"> <action name="*AlbumAction" method="{1}" class="actions.AlbumInfoAction"> <result name="populate">/albumDetails.jsp</result> </action> </package> </struts>
4. Crear albumDetails.jsp que muestre todos los datos del artista. Para mostrar las canciones hacer uso del tag iterator.
<%@taglib uri="/struts-tags" prefix="s"%> <html> <head> <s:head /> <style type="text/css"> @import url(style.css); </style> <meta http-equiv="Content-Type" content="text/html; charset=ISO-88591"> <title>Album Details</title> </head> <body> <div class="content"><b>Album Title :</b> <s:property value="title" /> <br> <b>Artist Name :</b> <s:property value="artist.name" /> <br> <b>Artist Bio :</b> <s:property value="artist.bio" /> <br> Song Details <table class="songTable" border="1"> <tr > <td><b>Title</b></td> <td><b>Genre</b></td> </tr> <s:iterator value="songs"> <tr> <td><s:property value="title" /></td> <td><s:property value="genre" /></td> </tr> </s:iterator> </table> </div> </body> </html>
5. Las filas impares de la tabla de canciones mostrarlas de un color diferente al de las pares. Hacer uso del tag if.
<s:iterator value="songs" status="songStatus"> <tr class='<s:if test="#songStatus.odd==true">odd</s:if><s:else>even</s:else>'> <td><s:property value="title" /></td> <td><s:property value="genre" /></td> </tr> </s:iterator>
Struts 2: Utilizar un solo action que agrupe varias funciones. 1. Crear el siguiente action:
public class UserAction extends ActionSupport{ private String message; public String execute() { message = "Dentro del mtodo execute "; return SUCCESS; } public String add() { message = " Dentro del mtodo add "; return SUCCESS; } public String update() { message = " Dentro del mtodo update "; return SUCCESS; } public String delete() { message = "Dentro del mtodo delete "; return SUCCESS; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
2. En el archivo struts.xml:
<struts> <package name="default" extends="struts-default"> <action name="User" class="actions.UserAction"> <result name="success">/success.jsp</result> </action> <action name="addUser" method="add" class=" actions.UserAction"> <result name="success">/success.jsp</result> </action> <action name="updateUser" method="update" class=" actions.UserAction"> <result name="success">/success.jsp</result> </action> <action name="deleteUser" method="delete" class=" actions.UserAction"> <result name="success">/success.jsp</result> </action> </package> </struts>
<%@taglib uri="/struts-tags" prefix="s" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-88591"> <title>Insert title here</title> </head> <body> <s:form action="User" > <s:submit /> <s:submit action="addUser" value="Agregar" /> <s:submit action="updateUser" value="Actualizar" /> <s:submit action="deleteUser" value="Eliminar" /> </s:form> </body> </html>
4. Crear success.jsp
<html> <head> <title>Insert title here</title> </head> <body> ${message}
</body> </html>