Galera seguinte,
Tenho uma pagina que lista alguns registros e para cada registro temos 2 ícos (um de Alterar e outro de Excluir) representados por figuras.
Dentro do meu logic:iterate, preciso passar 2 parâmetros para que minha classe Action receba os mesmos e execute a ação desejada:
Os parâmetros a serem passados são: acao=(valor da iterate) e codEvento=(valor da iterate)
minha JSP é a seguinte (apenas a parte necessária):
<logic:iterate name="lista" id="listaEventos">
<tr bordercolor="#F7F7F7" bgcolor="#fed7c3">
<td width="30px" align="center" class="t_label"><bean:write name="listaEventos" property="codEvento"/></td>
<td width="320px" align="left" class="t_label"><bean:write name="listaEventos" property="tituloEvento" /></td>
<td width="30px" align="center" class="t_label">
<!--<a href="<html:rewrite page=''/>/alterarForm/eventos.do?acao=alterar&codEvento=<bean:write name='listaEventos' property='codEvento'/>">
<html:img styleClass="imagens" src="../img/alterar.gif"/>
</a>-->
<html:link page="/alterarForm/eventos.do?acao=alterar" scope="request" paramName="listaEventos" paramId="codEvento" paramProperty="codEvento">
<html:img styleClass="imagens" src="../img/alterar.gif"/>
</html:link>
</td>
<td width="30px" align="center" class="t_label">
<!--<a scope ="request" href="<html:rewrite page=''/>/deletar/eventos.do?acao=excluir&codEvento=<bean:write name='listaEventos' property='codEvento'/>">
<html:img styleClass="imagens" src="../img/delete.gif"/>
</a>-->
<html:link page="/deletar/eventos.do?acao=excluir" scope="request" paramName="listaEventos" paramId="codEvento" paramProperty="codEvento">
<html:img styleClass="imagens" src="../img/delete.gif"/>
</html:link>
</td>
</tr>
</logic:iterate>
veja que eu comentei um “suposta” segunda opção de passagem de parâmetros para vocês verem quais delas esta certa.
até ai acho que está certo.
O que esta pegando aparentemente não estou conseguindo recuperar na minha Action estes parâmetros passados pela URL.
minha Action esta disposta da seguinte forma:
package evento.actions;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import evento.dao.EventoDAO;
import util.Conexao;
public class ListaEventos extends Action {
EventoDAO eventoDAO;
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
HttpSession sessao = request.getSession();
eventoDAO = new EventoDAO();
String acao = request.getParameter("acao");
if (acao == "excluir")
{
String sCodigo = request.getParameter("codEvento");
int codigo = Integer.parseInt(sCodigo) ;
String retorno = eventoDAO.ExcluirEvento(codigo);
if (retorno.equals("sucesso"))
return(mapping.findForward(retorno));
else
return(mapping.findForward("erro"));
} else if (acao == "alterar")
{
return (mapping.findForward("teste"));
// Ainda nao implementado
}
else
{
sessao.setAttribute("lista", eventoDAO.ListaEventos());
return(mapping.findForward("listaEventosOk"));
}
}
}
minha classe DAO (apenas a rotina de exclusao):
public String ExcluirEvento(int codigo) throws SQLException {
try {
PreparedStatement stm = conn.prepareStatement("DELETE FROM eventos WHERE codEvento = ?");
stm.setInt(1, codigo);
stm.execute();
return "sucesso";
} catch (SQLException ex) {
System.out.println ("SQLException: " + ex.getMessage());
return (ex.getMessage());
}
}
Gostaria de saber onde estão meus erros!
Desde já agradeço pela atenção de todos!
Abraço![/code]