Bom dia galera. tenho uma página jsp onde possuo um formuário que para a inserção de dados na tabela pessoa (idPessoa, nome, email, fone, idDepto) esta tabela esta relacionada com a tabela departamento por (idDepto). Na miinha página jsp estou usando um componente que está listando todos os departamentos já cadastrados e pretendo inserir um novo usuário e vinvulá-lo a um desses departamentos, porém no momento da execução ocorre o seguinte erro:
org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 49
46: String nome =request.getParameter("nome");
47: String fone = request.getParameter("fone");
48: String email =request.getParameter("email");
49: int cod = Integer.valueOf(request.getParameter("Departamentos"));
50:
51:
52:
java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Integer.java:417)
Pelo que eu estou entendendo ele não está conseguindo pegar o valor, ou seja, o idDepto do departamento para inseri-lo no banco. Como poderia resolver este problema usando somente jsp. Segue abaixo o código que fiz até o momento:
<h1>Teste de conexão com o banco de dados</h1>
// campos para a inserção na tabela pessoa
Nome:<input type ="text" name ="nome" size ="30" >
Fone:<input type ="text" name ="fone" size ="12">
email:<input type ="text" name ="email" size ="30">
// departamentos listados para vincular um novo usuárioa um departamento
Departamento:<select name ="Departamentos" SIZE ="1" >
<% String dep;
int idDepto;
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://192.168.1.62/curso","ifpa","ifpa");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select idDepto,depto from departamento");
while(rs.next()){
idDepto =rs.getInt("idDepto");
dep = rs.getString("depto");
%>
<option value ="<%=idDepto %>" ><%=dep %> </option>
<% }
rs.close();
stmt.close();
con.close();
%>
</select>
<%
// código para inserção do novo usuario na tabela pessoa relacioanada com a tabela departamento
String nome =request.getParameter("nome");
String fone = request.getParameter("fone");
String email =request.getParameter("email");
int cod = Integer.valueOf(request.getParameter("Departamentos"));
Class.forName("com.mysql.jdbc.Driver");
Connection conexao = DriverManager.getConnection("jdbc:mysql://192.168.1.62/curso","ifpa","ifpa");
String sql ="insert into pessoa(nome,fone,email,idDepto) values (?,?,?,?)";
PreparedStatement st = conexao.prepareStatement(sql);
st.setString(1,nome);
st.setString(2,fone);
st.setString(3,email);
st.setInt(4,cod);
st.executeUpdate();
st.close();
conexao.close();
%>
Vejam qual o erro que estou cometendo.