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:
code
private Especialidade codEspecializacao1;
private Especialidade codEspecializacao2;
(…)[/code]
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:
code
ps.setInt(15, dentista.getCodEspecializacao1().getCodigo());
ps.setInt(16, dentista.getCodEspecializacao2().getCodigo());
(…)[/code]
Na classe EspecialidadeDao eu tenho uma lista do tipo Especialidade para aparecer os dados quando eu for cadastrar o dentista…
[code]String sqlLista = “SELECT codigo, descricao FROM especialidade ORDER BY descricao”;
ps = con.prepareStatement(sqlLista);
rs = ps.executeQuery();
List listaEspecialidade = new ArrayList();
Especialidade especialidade = null;
while(rs.next()){
especialidade = new Especialidade();
especialidade.setCodigo(rs.getInt("codigo"));
especialidade.setDescricao(rs.getString("descricao"));
listaEspecialidade.add(especialidade);
}
return listaEspecialidade;[/code]
A minha classe que possui o formulário de cadastro está assim:
code
sb.append( "Área de Especialização 1:
<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(" ");
//Codigo da ‘Especializacao2’ é a mesma forma da Especializacao1 exemplificada acima
[/code]
e no meu DentistaServlet está da seguinte forma:
[code]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);
(…)
}[/code]
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