Erro de cadastro

4 respostas
Rodivan

Bom dia pessoal...
Estou fazendo um cadastro de dentistas aqui em meu projeto e está dando erro quando vai inserir a especialidade do dentista. Esse cadastro de dentista usa uma outra tabela do banco chamada 'especialidade', nela estão cadastradas as especialidades do dentista..
Tenho na minha classe bean Dentista, 2 atributos que estão assim:

(...)
private Especialidade codEspecializacao1;
private Especialidade codEspecializacao2;
(...)

e os métodos get e set estão assim:

public Especialidade getCodEspecializacao1() {
return codEspecializacao1;
}
public void setCodEspecializacao1(Especialidade codEspecializacao1) {
this.codEspecializacao1 = codEspecializacao1;
}
public Especialidade getCodEspecializacao2() {
return codEspecializacao2;
}
public void setCodEspecializacao2(Especialidade codEspecializacao2) {
this.codEspecializacao2 = codEspecializacao2;
}

No meu DentistaDao, no método para inserir está assim:

(...)
ps.setInt(15, dentista.getCodEspecializacao1().getCodigo());
ps.setInt(16, dentista.getCodEspecializacao2().getCodigo());
(...)

Na classe EspecialidadeDao eu tenho uma lista do tipo Especialidade para aparecer os dados quando eu for cadastrar o dentista..

String sqlLista = "SELECT codigo, descricao FROM especialidade ORDER BY descricao";
    ps = con.prepareStatement(sqlLista);
    rs = ps.executeQuery();
    List<Especialidade> listaEspecialidade = new ArrayList<Especialidade>();
    Especialidade especialidade = null;
    while(rs.next()){
        especialidade = new Especialidade();
            
        especialidade.setCodigo(rs.getInt("codigo"));
        especialidade.setDescricao(rs.getString("descricao"));
            
        listaEspecialidade.add(especialidade);
            
    }
        
return listaEspecialidade;

A minha classe que possui o formulário de cadastro está assim:

(...)
sb.append( "<label>Área de Especialização 1: <br><select name=\"especializacao1\" style=\"width: 200px\"> ");

    EspecialidadeDao a = new EspecialidadeDao();
    try {

    for(int i = 0; i < a.listaEspecialidade().size(); i++){
                          Especialidade especialidade = a.listaEspecialidade().get(i);
                                   sb.append("<option name=\"especialidade1\" value\"" + especialidade.getCodigo() + "\" >" + especialidade.getDescricao() + "</option>");

    }

} catch (Exception e) {
e.printStackTrace();
}

sb.append(" </select></label> ");

//Codigo da 'Especializacao2' é a mesma forma da Especializacao1 exemplificada acima

e no meu DentistaServlet está da seguinte forma:

else if(action.equals("salvarNovo")){

    (...)
    int especializacao1 = Integer.parseInt(request.getParameter( "especialidade1" )); // Aqui acontece o erro! Essa é a linha 72
    int especializacao2 = Integer.parseInt(request.getParameter( "especialidade2" ));
    (...)

Dentista dentista = new Dentista();
    (...)
    dentista.getCodEspecializacao1().setCodigo(especializacao1);
    dentista.getCodEspecializacao2().setCodigo(especializacao2);
    (...)
}

Aparece o erro:

java.lang.NumberFormatException: null
    java.lang.Integer.parseInt(Unknown Source)
    java.lang.Integer.parseInt(Unknown Source)
    gerenciador.servlet.DentistaServlet.doExecute(DentistaServlet.java:72)

acho que não pegou o código da especialização selecionada quando vou cadastrar.. alguém tem alguma idéia? Uso banco Mysql, estou desenvolvendo no Eclipse usando Servlet

4 Respostas

Hebert_Coelho

O que a linha gerenciador.servlet.DentistaServlet.doExecute(DentistaServlet.java:72) faz?

Rodivan

Contém as requisições… controla as actions…

Hebert_Coelho

Pois é exatamente essa linha que está dando erro…

Rodivan

Isso eu já sei :?
Mas já resolvi… no meu bean ‘Dentista’ deveria ficar assim:

private Especialidade codEspecializacao1 = new Especialidade(); private Especialidade codEspecializacao2 = new Especialidade();

Criado 13 de novembro de 2011
Ultima resposta 19 de nov. de 2011
Respostas 4
Participantes 2