Estou com um problema no botão "Cadastrar".
Na página "cadastro_clientes.jsp" funciona perfeitamente, porém na página "atualizar_clientes.jsp" ao clicar no botão "Atualizar" me apresenta logo em seguida a tela de cadastro de cliente acusando a atualização como um novo cadastro e na página "cadastro_cpucl.jsp" ao clicar no botão "Cadastrar" me apresenta logo em seguida a mesma tela de cadastro de cliente.
Estou trabalhando com os seguintes arquivos:
cadastro_cpucl.jsp<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!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>Cadastro de Máquinas</title>
<link rel="stylesheet" type="text/css" href="principal.css">
</head>
<body>
<div id="container">
<div id="top">
<h1>Cadastro de Máquinas</h1>
<h3>${mensagem}</h3>
</div>
<div id="leftSide">
<fieldset>
<legend>Máquina</legend>
<form action="RinconController" method="post" class="form">
<input type="hidden" id="cmd" value="cadastrarCpuCl"/>
<label for="nome">Placa Mãe*</label>
<div class="div_texbox">
<input type="text" name="pl_mae" id="pl_mae" value="${cpu.pl_mae}"/>
S/N:<input type="text" name="sn_mae" id="sn_mae" value="${cpu.sn_mae}"/>
</div>
<label for="nome">Processador*</label>
<div class="div_texbox">
<input type="text" name="processador" id="processador" value="${cpu.processador}"/>
</div>
<label for="nome">Placa de Vídeo*</label>
<div class="div_texbox">
<input type="text" name="pl_video" id="pl_video" value="${cpu.pl_video}"/>
S/N:<input type="text" name="sn_video" id="sn_video" value="${cpu.sn_video}"/>
</div>
<label for="nome">Placa de Rede*</label>
<div class="div_texbox">
<input type="text" name="pl_rede" id="pl_rede" value="${cpu.pl_rede}"/>
S/N:<input type="text" name="sn_rede" id="sn_rede" value="${cpu.sn_rede}"/>
</div>
<label for="nome">Placa de Som*</label>
<div class="div_texbox">
<input type="text" name="pl_som" id="pl_som" value="${cpu.pl_som}"/>
S/N:<input type="text" name="sn_som" id="sn_som" value="${cpu.sn_som}"/>
</div>
<label for="nome">HD*</label>
<div class="div_texbox">
<input type="text" name="hd" id="hd" value="${cpu.hd}"/>
S/N:<input type="text" name="sn_hd" id="sn_hd" value="${cpu.sn_hd}"/>
</div>
<label for="nome">Memória*</label>
<div class="div_texbox">
<input type="text" name="memoria" id="memoria" value="${cpu.memoria}"/>
S/N:<input type="text" name="sn_memoria" id="sn_memoria" value="${cpu.sn_memoria}"/>
</div>
<div class="button_div">
<input name="cadastrar" type="submit" value="Cadastrar" class="buttons"/>
</div>
<div class="button_div">
<li><a href="index.jsp" class="buttons">Voltar</a></li>
</div>
</form>
</fieldset>
</div>
</div>
</body>
</html>
CadastrarCpuCl.java
package br.com.rincon.model.command;
import java.lang.reflect.InvocationTargetException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import br.com.rincon.model.bean.CpuCl;
import br.com.rincon.model.dao.HibernateDAO;
import br.com.rincon.model.dao.InterfaceDAO;
public class CadastrarCpuCl implements InterfaceCommand {
@Override
public String execute(HttpServletRequest request,
HttpServletResponse response) {
// TODO Auto-generated method stub
CpuCl cpuCl = new CpuCl();
try {
BeanUtils.populate(cpuCl,request.getParameterMap());
if(cpuCl.isValido()){
InterfaceDAO<CpuCl> cpuClDAO = new HibernateDAO<CpuCl>(CpuCl.class);
cpuClDAO.salvar(cpuCl);
request.setAttribute("mensagem","Máquina gravada com sucesso: "+cpuCl.getN_serie());
}else
request.setAttribute("mensagem","Preencha os campos obrigatórios!");
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
request.setAttribute("mensagem", "problemas com preenchimento do Bean: "+e.getMessage());
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
request.setAttribute("mensagem", "problemas com preenchimento do Bean: "+e.getMessage());
e.printStackTrace();
} catch(Exception e){
request.setAttribute("mensagem", "problemas com a gravação: "+e.getMessage());
e.printStackTrace();
}
return "cadastro_cpucl.jsp";
}
}
RinconHelper.java
package br.com.rincon.model.helper;
import javax.servlet.http.HttpServletRequest;
import br.com.rincon.model.command.AtualizarClientes;
import br.com.rincon.model.command.CadastrarClientes;
import br.com.rincon.model.command.CadastrarCpuCl;
import br.com.rincon.model.command.ConsultarClientes;
import br.com.rincon.model.command.ExcluirClientes;
import br.com.rincon.model.command.InterfaceCommand;
public class RinconHelper {
private HttpServletRequest request;
public RinconHelper(HttpServletRequest request){
super();
this.request = request;
}
public InterfaceCommand getCommand(){
String cmd = request.getParameter("cmd");
if(cmd==null || cmd.equals("cadastrarClientes"))
return new CadastrarClientes();
if(cmd.equals("consultarClientes"))
return new ConsultarClientes();
if(cmd.equals("excluirClientes"))
return new ExcluirClientes();
if(cmd.equals("atualizarClientes"))
return new AtualizarClientes();
if(cmd==null || cmd.equals("cadastrarCpuCl"))
return new CadastrarCpuCl();
return null;
}
}
cadastro_clientes.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!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>Cadastro de Clientes</title>
<link rel="stylesheet" type="text/css" href="principal.css">
</head>
<body>
<div id="container">
<div id="top">
<h1>Cadastro de Clientes</h1>
<h3>${mensagem}</h3>
</div>
<div id="leftSide">
<fieldset>
<legend>Cliente</legend>
<form action="RinconController" method="post" class="form">
<input type="hidden" id="cmd" value="cadastrarClientes"/>
<label for="nome">Nome*</label>
<div class="div_texbox">
<input type="text" name="nome" id="nome" value="${clientes.nome}"/>
</div>
<label for="nome">Endereço*</label>
<div class="div_texbox">
<input type="text" name="endereco" id="endereco" value="${clientes.endereco}"/>
</div>
<label for="nome">Telefone*</label>
<div class="div_texbox">
<input type="text" name="telefone" id="telefone" value="${clientes.telefone}"/>
</div>
<label for="nome">Estado*</label>
<div class="div_texbox">
<input type="text" name="uf" id="uf" value="${clientes.uf}"/>
</div>
<label for="nome">E-mail*</label>
<div class="div_texbox">
<input type="text" name="email" id="email" value="${clientes.email}"/>
</div>
<label for="nome">Nome Empresa*</label>
<div class="div_texbox">
<input type="text" name="nome_empresa" id="nome_empresa" value="${clientes.nome_empresa}"/>
</div>
<div class="button_div">
<input name="cadastrar" type="submit" value="Cadastrar" class="buttons"/>
</div>
<div class="button_div">
<li><a href="index.jsp" class="buttons">Voltar</a></li>
</div>
</form>
</fieldset>
</div>
</div>
</body>
</html>
atualizar_clientes.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!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>Atualização de Clientes</title>
<link rel="stylesheet" type="text/css" href="principal.css">
</head>
<body>
<div id="container">
<div id="top">
<h1>Atualização de Clientes</h1>
<h3>${mensagem}</h3>
</div>
<div id="leftSide">
<fieldset>
<legend>Cliente</legend>
<form action="RinconController" method="post" class="form">
<input type="hidden" id="cmd" value="atualizarClientes"/>
<input type="hidden" id="id_cliente" name="id_cliente" value="${param.codigo}"/>
<label for="nome">Nome*</label>
<div class="div_texbox">
<input type="text" name="nome" id="nome" value="${clientes.nome}"/>
</div>
<label for="nome">Endereço*</label>
<div class="div_texbox">
<input type="text" name="endereco" id="endereco" value="${clientes.endereco}"/>
</div>
<label for="nome">Telefone*</label>
<div class="div_texbox">
<input type="text" name="telefone" id="telefone" value="${clientes.telefone}"/>
</div>
<label for="nome">Estado*</label>
<div class="div_texbox">
<input type="text" name="uf" id="uf" value="${clientes.uf}"/>
</div>
<label for="nome">E-mail*</label>
<div class="div_texbox">
<input type="text" name="email" id="email" value="${clientes.email}"/>
</div>
<label for="nome">Nome Empresa*</label>
<div class="div_texbox">
<input type="text" name="nome_empresa" id="nome_empresa" value="${clientes.nome_empresa}"/>
</div>
<div class="button_div">
<input name="atualizar" type="submit" value="Atualizar" class="buttons"/>
</div>
<div class="button_div">
<li><a href="RinconController?cmd=consultarClientes" class="buttons">Voltar</a>
</div>
</form>
</fieldset>
</div>
</div>
</body>
</html>
AtualizarClientes.java
package br.com.rincon.model.command;
import java.lang.reflect.InvocationTargetException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import br.com.rincon.model.bean.Clientes;
import br.com.rincon.model.dao.HibernateDAO;
import br.com.rincon.model.dao.InterfaceDAO;
public class AtualizarClientes implements InterfaceCommand {
@Override
public String execute(HttpServletRequest request,
HttpServletResponse response) {
// TODO Auto-generated method stub
Clientes clientes = new Clientes();
try {
BeanUtils.populate(clientes, request.getParameterMap());
if(clientes.isValido()){
InterfaceDAO<Clientes> clientesDAO = new HibernateDAO<Clientes>(Clientes.class);
clientesDAO.atualizar(clientes);
request.setAttribute("mensagem", "Cliente atualizado com sucesso!");
}else if(request.getMethod().equalsIgnoreCase("post")){
request.setAttribute("clientes", clientes);
request.setAttribute("mensagem", "Preencha os campos obrigatórios!");
return "atualizar_clientes.jsp";
}else{
InterfaceDAO<Clientes> clientesDAO = new HibernateDAO<Clientes>(Clientes.class);
Integer codigo = Integer.valueOf(request.getParameter("codigo"));
request.setAttribute("clientes", clientesDAO.getBean(codigo));
return "atualizar_clientes.jsp";
}
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
request.setAttribute("mensagem", "Problemas com a atualização! "+e.getMessage());
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
request.setAttribute("mensagem", "Problemas com a atualização! "+e.getMessage());
e.printStackTrace();
}
return "RinconController?cmd=consultarClientes";
}
}
InterfaceDAO.java
package br.com.rincon.model.dao;
import java.io.Serializable;
import java.util.List;
public interface InterfaceDAO<T> {
void salvar(T bean);
void atualizar(T bean);
void excluir(T bean);
T getBean(Serializable codigo);
List<T> getBeans();
}
Desde já agradeço quem puder me ajudar!!!
Att.
Thiago