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