Para tratar estes comandos, o código fonte da ListaClientesAction ficou assim:

package clientesPack;

import java.util.List;

public class ListaClientesAction {
    private List<Cliente> clientes;  	
	private String comando = null;
	private String id = null;
	
    public String execute() throws Exception {
	   
	   boolean result = false;
	   
	   ClienteDao dao = null;
	   
	   if (comando != null) {
	   		   if (comando.equals("Novo")) {
	   			   return "novo";
	   		   }
	   		   else if (comando.indexOf("Editar") == 0) {
	   			   id = comando.substring(6);
	   			   return "editar";
	   		   }
	   		   else if (comando.indexOf("Excluir") == 0) {
	   			   id = comando.substring(7);
	   			   return "excluir";
	   		   }
	   	   }
	   
	   try {
		   dao = new ClienteDao();
		   clientes = dao.carregaClientes();
		   result = true;
	   }
	   finally {
		   if (dao != null)
			   dao.close();
	   }
	   
	   if (result)
		   return "success";
	   
	   return "error";
   }
   
   public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

   public List<Cliente> getClientes() {
      return this.clientes;
   }
   
   public void setFiltro(String filtro) {
	   this.filtro = filtro;
   }
   
   public String getFiltro() {
	   return filtro;
   }
   
   public void setComando(String comando) {
	   this.comando = comando;
   }
   
   public String getComando() {
	   return comando;
   }
}

Repare que a action ganhou 2 atributos: id e comando. Comando contém um identificador para indicar para qual action será redirecionado, id contém o valor do registro que deverá ser alterado ou excluído.

Os códigos de retorno do método execute são: novo, editar, excluir, success e erro. Através destes códigos de retorno, o redirecionamento é mapeado em struts.xml.

Copyright © 2014 AIEC.