Meu problema unico é que o Editar e Excluir nao funcionan,
os dados sao carregados perfeitos, opcao de cadastro perfeita.
Mas nao funciona Editar e Excluir, nao acho o erro PORFAVOR
Obrigado
Este é meu arquivo JSP
<% if (!(session.getAttribute("snivel") != null && session.getAttribute("snivel").equals("1"))) {
response.sendRedirect("erro_privilegios.jsp");
}%>
<%@page contentType="text/html" pageEncoding="ISO-8859-1"%>
<%@page import="beans.BeanLocacaoMidia" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<c:import url="cabecalho.jsp" />
<jsp:useBean id="locacaoMidia" class="beans.BeanLocacaoMidia" scope="request">
<jsp:setProperty name="locacaoMidia" property="*" />
</jsp:useBean>
<%
String actionForm = "locacaoMidia.jsp?acao=listar";
String display = "grade";
String labelBtn = "";
String descAtiv = "Cadastro de Locacaos";
String acao = request.getParameter("acao");
if (acao == null) {
acao = "listar";
} else {
if (acao.equals("excluir")) {
locacaoMidia.deletarLocacao();
}
if (acao.equals("editar")) {
if (locacaoMidia.carregarLocacao()) {
actionForm = "locacaoMidia.jsp?acao=salvar";
display = "form";
labelBtn = "Salvar";
descAtiv = "Alterar locacaoMidia";
} else {
acao = "listar";
}
}
if (acao.equals("salvar")) {
if (locacaoMidia.atualizarLocacao()) {
response.sendRedirect("locacaoMidia.jsp?acao=listar");
} else {
acao = "retornaEditar";
}
}
if (acao.equals("retornaEditar")) {
actionForm = "locacaoMidia.jsp?acao=salvar";
display = "form";
labelBtn = "Salvar";
descAtiv = "Alterar locacaoMidia";
}
if (acao.equals("cadastrar")) {
actionForm = "locacaoMidia.jsp?acao=incluir";
display = "form";
labelBtn = "Cadastrar";
descAtiv = "Cadastrar locacaoMidia";
}
if (acao.equals("incluir")) {
if (locacaoMidia.incluirLocacao()) {
response.sendRedirect("locacaoMidia.jsp?acao=listar");
} else {
acao = "retornaIncluir";
}
}
if (acao.equals("retornaIncluir")) {
actionForm = "locacaoMidia.jsp?acao=incluir";
display = "form";
labelBtn = "Cadastrar";
descAtiv = "Cadastrar locacaoMidia";
}
}
%>
<c:set var="actionForm" value="<%= actionForm %>" />
<c:set var="display" value="<%= display %>" />
<c:set var="labelBtn" value="<%= labelBtn %>" />
<c:set var="descAtiv" value="<%= descAtiv %>" />
<c:set var="erroCliente_idcliente" value='<%= locacaoMidia.getErros("cliente_idcliente") %>' />
<c:set var="erroMidia_idmidia" value='<%= locacaoMidia.getErros("midia_idmidia") %>' />
<c:set var="erroDthrRetirada" value='<%= locacaoMidia.getErros("dthrRetirada") %>' />
<c:set var="erroDthrDevolucao" value='<%= locacaoMidia.getErros("dthrDevolucao") %>' />
<div id="pgtitle">${descAtiv}</div>
<c:choose>
<c:when test="${display=='form'}">
<form action="${actionForm}" method=post name="locacaoMidias">
<input type="hidden" name="idlocacaoMidia" value="${locacaoMidia.idlocacaoMidia}">
<div>
<label class="lb">Cliente: </label>
<input class="cptexto" type="text" name="cliente_idcliente" id="cliente_idcliente" value="${locacaoMidia.cliente_idcliente}" title="cliente_idcliente" />
<span class="err" id="erro_titulo">${erroCliente_idcliente}</span>
</div>
<div>
<label class="lb">Midia:</label>
<input class="cptexto" type="text" name="midia_idmidia" id="midia_idmidia" value="${locacaoMidia.midia_idmidia}" size="30" maxlength="40" title="midia_idmidia" />
<span class="err" id="erro_titulo">${erroMidia_idmidia}</span>
</div>
<div>
<label class="lb">Data Retirada: </label>
<input class="cptexto" type="text" name="dthrRetirada" id="dthrRetirada" value="${locacaoMidia.dthrRetirada}" title="dthrRetirada" />
<span class="err" id="erro_titulo">${erroDthrRetirada}</span>
</div>
<div>
<label class="lb">Data Entrega: </label>
<input class="cptexto" type="text" name="dthrDevolucao" id="dthrDevolucao" value="${locacaoMidia.dthrDevolucao}" title="dthrDevolucao" />
<span class="err" id="erro_titulo">${erroDthrDevolucao}</span>
</div>
<div>
<label class="lb"> </label>
<input type="submit" value="${labelBtn}" title="Submeter formulário" />
<input type="button" value="Cancelar" onclick="window.location='locacaoMidia.jsp?acao=listar'">
</div>
</form>
</c:when>
<c:otherwise>
<c:set var="rsLocacaoMidias" value="${locacaoMidia.locacaoMidias}" /><!-- Prepara os resultados da consulta (chama o getlocacaoMidias() do bean )-->
<div align="center">
<a href="locacaoMidia.jsp?acao=cadastrar"><b>* Cadastrar novo locacaoMidia</b></a>
</div>
<br>
<div align="center">
<form action="${actionForm}" method=post name="locacaoMidias">
<input type="text" name="busca" value="${locacaoMidia.busca}"
<input type="submit" value="Buscar">
<input type="button" value="Limpar" onclick="window.location='locacaoMidia.jsp?acao=listar'">
</form>
</div>
<div align="center">${locacaoMidia.results}</div>
<table border="1" align="center" width="700">
<tr>
<th>Id</th>
<th>Cliente</th>
<th>Midia</th>
<th>Retirada</th>
<th>Devolucao</th>
<th>Excluir</th>
<th>Editar</th>
</tr>
<c:forEach var="listaLocacaoMidias" items="${rsLocacaoMidias.rows}">
<tr>
<td>${listaLocacaoMidias.idlocacaoMidia}</td>
<td>${listaLocacaoMidias.cliente_idcliente}</td>
<td>${listaLocacaoMidias.midia_idmidia}</td>
<td>${listaLocacaoMidias.dthrRetirada}</td>
<td>${listaLocacaoMidias.dthrDevolucao}</td>
<td><a href='locacaoMidia.jsp?acao=excluir&idlocacaoMidia=${listaLocacaoMidias.idlocacaoMidia}&pag=${locacaoMidia.pag}'>Excluir</a></td>
<td><a href='locacaoMidia.jsp?acao=editar&idlocacaoMidia=${listaLocacaoMidias.idlocacaoMidia}&pag=${locacaoMidia.pag}'>Editar</a></td>
</tr>
</c:forEach>
</table>
<div align="center">${locacaoMidia.navegator}</div>
</c:otherwise>
</c:choose>
<c:import url="rodape.jsp" />
Este é meu arquivo Bean
package beans;
import java.util.Hashtable;
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;
import java.sql.*;
import conexao.*;
public class BeanLocacaoMidia implements java.io.Serializable{
//Nomes dos atributos preferencialmente iguais aos usados no formulario
private int idlocacaoMidia;
private String cliente_idcliente;
private String midia_idmidia;
private String dthrRetirada;
private String dthrDevolucao;
private String busca; //String de pesquisa no BD
private String pag; //Pagina atual de exibição (paginação)
private String results; //String que conterá a msg 'Resultados 1 a XX do total de XXX' para a paginação
private String navegator; //conterá o link com as paginas para navegar entre os resultados
private Result locacaoMidias; // conterá o arraylist com os resultados da consulta
private Hashtable erros; //Este atributo serve para o controle de erros no formulario
public BeanLocacaoMidia() { //Iniciamos os atributos
cliente_idcliente = "";
midia_idmidia = "";
dthrRetirada = "";
dthrDevolucao = "";
busca = "";
pag = "1";
navegator = "";
results = "";
erros = new Hashtable();
}
//Metodos para acessar os atributos. getNome() para ver seu valor, e setNome() para ajustar seu valor
public int getIdlocacaoMidia() {
return idlocacaoMidia;
}
public String getCliente_idcliente() {
return cliente_idcliente;
}
public String getMidia_idmidia() {
return midia_idmidia;
}
public String getDthrRetirada() {
return dthrRetirada;
}
public String getDthrDevolucao() {
return dthrDevolucao;
}
public String getBusca() {
return busca;
}
public String getPag() {
return pag;
}
public void setPag(String pag) {
this.pag = pag;
}
public void setCliente_idcliente(String cliente_idcliente) {
this.cliente_idcliente = cliente_idcliente;
}
public void setMidia_idmidia(String midia_idmidia) {
this.midia_idmidia = midia_idmidia;
}
public void setDthrRetirada(String dthrRetirada) {
this.dthrRetirada = dthrRetirada;
}
public void setDthrDevolucao(String dthrDevolucao) {
this.dthrDevolucao = dthrDevolucao;
}
public void setBusca(String busca) {
this.busca = busca;
}
public boolean isValido(){ //validacao
boolean volta = true;
if ((cliente_idcliente == null) || cliente_idcliente.equals("")){
erros.put("cliente_idcliente", "Por favor, digite o idcliente.");
volta = false;
}
if ((midia_idmidia == null) || midia_idmidia.equals("") ){
erros.put("midia_idmidia", "Por favor, digite o idmidia.");
volta = false;
}
if ((dthrRetirada == null) || dthrRetirada.equals("") ){
erros.put("dthrRetirada", "Por favor, digite a data Retirada.");
volta = false;
}
if ((dthrDevolucao == null) || dthrDevolucao.equals("") ){
erros.put("dthrDevolucao", "Por favor, selecione a data Devolucao.");
volta = false;
}
return volta;
}
public String getErros (String s){ //Usado para ver as mensagens de erro armazenados na tabela de Hash
String msg = (String) erros.get(s);
return (msg == null) ? "" : msg;
}
public void setErros (String chave, String msg){ //Usado para colocar algum erro na tabela
erros.put(chave,msg);
}
public void listarLocacaoMidias()throws SQLException{ //faz a consulta paginada
Conexao con = new Conexao();
String filtro="";
if(!busca.equals("")){
filtro+="WHERE idlocacaoMidia LIKE '%"+busca+"%'"
+"OR cliente_idcliente LIKE '%"+busca+"%'"
+"OR midia_idmidia LIKE '%"+busca+"%'"
+"OR dthrRetirada LIKE '%"+busca+"%'"
+"OR dthrDevolucao LIKE '%"+busca+"%'";
}
String query="SELECT * FROM locacaomidia "+filtro;
String querytotal="SELECT idlocacaoMidia FROM locacaomidia "+filtro;
int pagina;
try{
pagina=Integer.parseInt(pag);
}
catch(Exception e){
pagina=1;
}
con.paginar(query,querytotal,"?acao=listar&busca="+busca,pagina,10);
locacaoMidias = ResultSupport.toResult(con.rs);//converte o resultset para um arraylist
this.results=con.getResultsNav();
this.navegator=con.getNavegatorNav();
con.rs.close();
con.fecharConexao();
}
public Result getlocacaoMidias()throws SQLException { //Retorna o objeto com a consulta paginada para ser usado com o foreach do jstl
this.listarLocacaoMidias();//chama a metodo que faz a consulta e alimenta o arraylist locacaoMidias
return locacaoMidias;
}
public String getResults(){ //Retorna o resumo de resultados da busca paginada
return results;
}
public String getNavegator(){//Retorna o navegador de resultados da busca paginada
return navegator;
}
public void deletarLocacao()throws SQLException{ //exclui o locacaoMidia cujo cogigo esta setado neste bean
Conexao con = new Conexao();
con.executeUpdate("DELETE FROM locacaomidia WHERE idlocacaoMidia='"+idlocacaoMidia+"'");
con.fecharConexao();
}
public boolean carregarLocacao() throws SQLException { //carrega os dados do DB setando neste bean
Conexao con = new Conexao();
boolean res;
ResultSet rs=null;
rs=con.executeQuery("SELECT * FROM locacaomidia WHERE idlocacaoMidia='"+idlocacaoMidia+"'");
if(rs.next()){
this.idlocacaoMidia=rs.getInt("idlocacaoMidia");
this.cliente_idcliente=rs.getString("cliente_idcliente");
this.midia_idmidia=rs.getString("midia_idmidia");
this.dthrRetirada=rs.getString("dthrRetirada");
this.dthrDevolucao=rs.getString("dthrDevolucao");
res = true;
}
else res = false;
rs.close();
con.fecharConexao();
return res;
}
public boolean atualizarLocacao()throws SQLException{// atualiza o registro no BD
if(this.isValido()){
Conexao con = new Conexao();
String query="UPDATE locacaomidia SET "
+" cliente_idcliente='"+cliente_idcliente+"'"
+",midia_idmidia='"+midia_idmidia+"'"
+",dthrRetirada='"+dthrRetirada+"'"
+",dthrDevolucao='"+dthrDevolucao+"'"
+" WHERE idlocacaoMidia='"+idlocacaoMidia+"'";
con.executeUpdate(query);
con.fecharConexao();
return true;
}
else return false;
}
public boolean incluirLocacao()throws SQLException{// Inclui um novo registro no BD
if(this.isValido()){
Conexao con = new Conexao();
String query="INSERT INTO locacaomidia(cliente_idcliente,midia_idmidia,dthrRetirada,dthrDevolucao) VALUES("
+ "'"+cliente_idcliente+"'"
+",'"+midia_idmidia+"'"
+",'"+dthrRetirada+"'"
+",'"+dthrDevolucao+"'"
+")";
con.executeUpdate(query);
con.fecharConexao();
return true;
}
else return false;
}
}