Problemas com Servlet

Olá a todos,

estou tentando implementar um sistema de cadastro, e no debug eu descobri uma coisa… a primeira parte que “pega” os dados da tela da JSP e traz para criar o objeto, essa parte está pegando certinho, mas a segunda acaba destruindo tudo! Ele faz o set do local no lugar do nome e o local fica com null e o nome simplesmente some… não passa para nenhum parametro! como que faço? o que eu tenho que mudar?

	String nome = request.getParameter("cli_nome");
	Integer telefone = Integer.parseInt(request.getParameter("cli_telefone"));
	String local= request.getParameter("cli_zona");
	String cidade= request.getParameter("cli_cidade");
	String email= request.getParameter("cli_email");
    String obs= request.getParameter("cli_obs");
	
	/** Cria o objeto Pessoa com os parametros passados da tela jsp **/
	Cliente cliente = new Cliente();
	cliente.setCli_nome(nome);	
	cliente.setCli_telefone(telefone);
	cliente.setCli_local(local);
	cliente.setCli_cidade(cidade);
	cliente.setCli_email(email);
    cliente.setCli_obs(obs);

Preciso de um help!

[quote=moraispaulo]Olá a todos,

estou tentando implementar um sistema de cadastro, e no debug eu descobri uma coisa… a primeira parte que “pega” os dados da tela da JSP e traz para criar o objeto, essa parte está pegando certinho, mas a segunda acaba destruindo tudo! Ele faz o set do local no lugar do nome e o local fica com null e o nome simplesmente some… não passa para nenhum parametro! como que faço? o que eu tenho que mudar?

	String nome = request.getParameter("cli_nome");
	Integer telefone = Integer.parseInt(request.getParameter("cli_telefone"));
	String local= request.getParameter("cli_zona");
	String cidade= request.getParameter("cli_cidade");
	String email= request.getParameter("cli_email");
    String obs= request.getParameter("cli_obs");
	
	/** Cria o objeto Pessoa com os parametros passados da tela jsp **/
	Cliente cliente = new Cliente();
	cliente.setCli_nome(nome);	
	cliente.setCli_telefone(telefone);
	cliente.setCli_local(local);
	cliente.setCli_cidade(cidade);
	cliente.setCli_email(email);
    cliente.setCli_obs(obs);

Preciso de um help!
[/quote]
Por coerência entre os nomes que você deu aos campos, acho que o código deveria ser assim:

String local= request.getParameter("cli_local");

mudei o campo só por desencargo de consciencia, porém já mudei pra local tbm e não vai…

Cara, você não está setando o valor, por isso que está com esse problema:

private String nome;
private String local;
private String cidade;
private String email;
private String obs;
private Integer telefone;

//gere os getters e setters dele, o JavaBeans

public void meuMetodoASerExecutado(){
setNome(request.getParameter("cli_nome"));
setLocal(request.getParameter("cli_zona"));
setCidade(request.getParameter("cli_cidade"));
setEmail(request.getParameter("cli_email")); 
setObs(request.getParameter("cli_obs"));
setTelefone(Integer.parseInt(request.getParameter("cli_telefone"))); 

//aqui foram setados os valores, agora é só atribuir

Cliente cliente = new Cliente(); 
cliente.setCli_nome(getNome());	
cliente.setCli_telefone(getTelefone()); 
cliente.setCli_local(getLocal()); 
cliente.setCli_cidade(getCidade()); 
cliente.setCli_email(getEmail()); 
cliente.setCli_obs(getObs()); 

}

vou colocar todo o código pra vc ver…

package controller;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.Cliente;
import dao.DAOCadCliente;
/**
*

  • @author PauloMorais
    */
    public class ControlClienteServlet extends HttpServlet {

    /**

    */
    private static final long serialVersionUID = 1L;

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

     //String str=request.getParameter("cli_cpf_cnpj");
     //Integer cpf_cnpj= Integer.valueOf(str);
     
     String nome = request.getParameter("cli_nome");
     Integer telefone = Integer.parseInt(request.getParameter("cli_telefone"));
     String local= request.getParameter("cli_local");
     String cidade= request.getParameter("cli_cidade");
     String email= request.getParameter("cli_email");
     String obs= request.getParameter("cli_obs");
     
     /** Cria o objeto Pessoa com os parametros passados da tela jsp **/
     Cliente cliente = new Cliente();
     cliente.setCli_nome(nome);	
     cliente.setCli_telefone(telefone);
     cliente.setCli_local(local);
     cliente.setCli_cidade(cidade);
     cliente.setCli_email(email);
     cliente.setCli_obs(obs);
     	
     /** Se comunica com a DAO que irá fazer a comunicação com o banco passando pessoa **/
     try {
     	
     	DAOCadCliente cadastro = new DAOCadCliente();
     	cadastro.cadastrarCliente(cliente);
     	
     } catch (Exception e) {
     	e.printStackTrace();
     }
     
     /** Enviando uma página JSP com mensagem de sucesso. **/
     RequestDispatcher rd = request.getRequestDispatcher("TechNet/cadastroSucesso.jsp");
    
     rd.forward(request, response);
    

    }
    }

Classe dentro do pacote model… cliente.java

package model;

public class Cliente {

private Integer cli_id;
private String cli_nome;
private int cli_telefone;
private String cli_local;
private String cli_cidade;
private String cli_email;
    private String cli_obs;
    

public Integer getCli_id() {
	return cli_id;
}
public void setCli_id(Integer cli_id) {
	this.cli_id = cli_id;
}
public String getCli_nome() {
	return cli_nome;
}
public void setCli_nome(String cli_nome) {
	this.cli_nome = cli_nome;
}
    public String getCli_local() {
	return cli_local;
}
public void setCli_local(String cli_local) {
	this.cli_nome = cli_local;
}

public int getCli_telefone() {
	return cli_telefone;
}
public void setCli_telefone(int cli_telefone) {
	this.cli_telefone = cli_telefone;
}

public String getCli_cidade() {
	return cli_cidade;
}
public void setCli_cidade(String cli_cidade) {
	this.cli_cidade = cli_cidade;
}

public String getCli_email() {
	return cli_email;
}
public void setCli_email(String cli_email) {
	this.cli_email = cli_email;
}
public String getCli_obs() {
	return cli_obs;
}
public void setCli_obs(String cli_obs) {
	this.cli_obs = cli_obs;
}

}

Boa tarde,

Verifica se na jsp os parametros estão com os nomes corretos, e se você está passando as informações corretas em cada campo da página ! :smiley:

[quote=RodrigoM91]Boa tarde,

Verifica se na jsp os parametros estão com os nomes corretos, e se você está passando as informações corretas em cada campo da página ! :D[/quote]

Estão sim… tudo certo no name=“xxxx”, certinho, até está por que na hora de pegar ele pega na hora de montar o objeto cliente que dá o problema…

Ele coloca em variaveis os valores:

String nome = request.getParameter("cli_nome"); 
Integer telefone = Integer.parseInt(request.getParameter("cli_telefone")); 
String local= request.getParameter("cli_zona"); 
String cidade= request.getParameter("cli_cidade"); 
String email= request.getParameter("cli_email"); 
String obs= request.getParameter("cli_obs"); 

O problema não é esse "!

[quote=moraispaulo]
Estão sim… tudo certo no name=“xxxx”, certinho, até está por que na hora de pegar ele pega na hora de montar o objeto cliente que dá o problema…[/quote]

E na página JSP você tem esses parâmetros com esses nomes certinho ?

cli_nome
cli_telefone
cli_zona
cli_cidade
cli_email
cli_obs

Ele coloca em variaveis os valores:

String nome = request.getParameter("cli_nome"); 
Integer telefone = Integer.parseInt(request.getParameter("cli_telefone")); 
String local= request.getParameter("cli_zona"); 
String cidade= request.getParameter("cli_cidade"); 
String email= request.getParameter("cli_email"); 
String obs= request.getParameter("cli_obs"); 

O problema não é esse "![/quote]

Então essas variáveis está certinho ! elas recebem os valores certo! Até se eu mandar fazer um print nesses valores fica certinho.
O problema é quando vai para a parte debaixo… o nome recebe o valor de local! e o local fica com null!

O problema está aqui:public void setCli_local(String cli_local) { this.cli_nome = cli_local; }Correto:public void setCli_local(String cli_local) { this.cli_local = cli_local; }Abraço.

[quote=RodrigoM91][quote=moraispaulo]
Estão sim… tudo certo no name=“xxxx”, certinho, até está por que na hora de pegar ele pega na hora de montar o objeto cliente que dá o problema…[/quote]

E na página JSP você tem esses parâmetros com esses nomes certinho ?

cli_nome
cli_telefone
cli_zona
cli_cidade
cli_email
cli_obs

[/quote]

sim!

[quote=isaiaspf]O problema está aqui:public void setCli_local(String cli_local) { this.cli_nome = cli_local; }Correto:public void setCli_local(String cli_local) { this.cli_local = cli_local; }Abraço.[/quote]

Muito obrigado! Acertou!

Como que faço para os acentos ficarem certos no banco de dados?

você já implementou da forma que eu te passei? Se você implementar daquela forma eu te garanto que o erro desaparece :roll:

Dá certo sim, porém foge do padrão MVC…

tu quer ele funcionando ou ele padronizado? kkkkkkkkkkkkkk

Em relação aos acentos. Antes de você salvar os dados no banco de dados, no objeto (java), eles estão com acentos tudo certinho?