A action ListaClienteAction precisa ser adaptada da seguinte forma:
package clientesPack; import java.util.List; public class ListaClientesAction { private List<Cliente> clientes; public String execute() throws Exception { boolean result = false; ClienteDao dao = null; try { dao = new ClienteDao(); clientes = dao.carregaClientes(); result = true; } finally { if (dao != null) dao.close(); } if (result) return "success"; return "error"; } public List<Cliente> getClientes() { return this.clientes; } }
A tela ListaClientes.jsp também precisa ser adaptada, para mostrar o campo nome. Porque agora a action não retorna uma lista de strings, mas uma lista de javabeans Cliente. Veja a diferença:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Lista de clientes</title> </head> <body> <h1>Lista de clientes</h1> <form action="listaClientes"> <label for="filtro">Filtrar por:</label><br/> <input type="text" name="filtro"/> <input type="submit" value="Filtrar"/> <input type="submit" value="Novo"/> <br> <table border=1> <s:iterator value="clientes"> <tr> <td> <s:property value="nome"/> </td> <td> <input type="submit" value="Editar"/> </td> <td> <input type="submit" value="Excluir"/> </td> </tr> </s:iterator> </table> </form> </body> </html>