Olá pessoal!!!
Estou com um probleminha que não tenho idéia do que seja… na hora de atualizar meus dados em uma página jsp, dá um erro que não sei o porque dele. Diz que há um campo nulo, mas não há!!
Erro
exception
org.apache.jasper.JasperException: Exception in JSP: /EfetuaAtualizacao.jsp:18
15: <body>
16:
17: <%
18: int codigo = Integer.parseInt(request.getParameter("codigo"));
19: String nome = request.getParameter("nome");
20: String sobrenome = request.getParameter("sobrenome");
21: String rua = request.getParameter("rua");
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Integer.java:415)
java.lang.Integer.parseInt(Integer.java:497)
org.apache.jsp.EfetuaAtualizacao_jsp._jspService(EfetuaAtualizacao_jsp.java:58)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
E esse é o que lista os dados antes de atualiza-los
<body>
<%
int codigo = Integer.parseInt(request.getParameter("codigo"));
if(codigo!=0){
Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance( );
conn = DriverManager.getConnection("jdbc:mysql://localhost/cadastro",
"root","123");
pst = conn.prepareStatement("select * from cliente where codigo=?");
pst.setInt(1, codigo);
rs = pst.executeQuery( );
pst.clearParameters( );
if(rs.next( )){
%>
<form action="EfetuaAtualizacao.jsp" method="post">
<table>
<tr>
<td>Codigo</td>
<td><input disabled="false" type="text" name="codigo"
value="<%= rs.getString("codigo") %>" />
</td>
</tr>
<tr>
<td>Nome</td>
<td><input type="text" name="nome"
value="<%= rs.getString("nome") %>" />
</td>
</tr>
<tr>
<td>Sobre nome</td>
<td><input type="text" name="sobrenome"
value="<%= rs.getString("sobrenome") %>" />
</td>
</tr>
<tr>
<td>Rua</td>
<td>
<input type="text" name="rua"
value="<%= rs.getString("rua")%>"/>
</td>
</tr>
<tr>
<td>Numero</td>
<td>
<input name="numero" type="text"
value="<%= rs.getInt("numero") %>"/>
</td>
</tr>
<tr>
<td>Bairro</td>
<td>
<input type="text" name="bairro"
value="<%= rs.getString("bairro") %>"/>
</td>
</tr>
<tr>
<td>Cidade</td>
<td>
<input type="text" name="cidade"
value="<%= rs.getString("cidade") %> "/>
</td>
</tr>
<tr>
<td>Estado</td>
<td>
<input type="text" name="estado"
value="<%= rs.getString("estado") %>"/>
</td>
</tr>
<tr>
<td>CPF</td>
<td>
<input type="text" name="cpf"
value="<%= rs.getString("cpf") %>"/>
</td>
</tr>
<tr>
<td>Salario</td>
<td>
<input type="text" name="salario"
value="<%= rs.getDouble("salario") %>"/>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="btAtualizar" value="Atualizar" />
</td>
</tr>
</table>
</form>
<%
}//end if
else{ out.println("Codigo não encontrado"); }
} catch (Exception ex) {
ex.printStackTrace( );
} finally {
if (pst != null) pst.close( );
if (rs != null) rs.close( );
if (conn != null) conn.close( );
}
}// end if
%>
</body>
Esse aqui é meu código que faz a atualização:
<body>
<%
int codigo = Integer.parseInt(request.getParameter("codigo"));
String nome = request.getParameter("nome");
String sobrenome = request.getParameter("sobrenome");
String rua = request.getParameter("rua");
int numero = Integer.parseInt(request.getParameter("numero"));
String bairro = request.getParameter("bairro");
String cidade = request.getParameter("cidade");
String estado = request.getParameter("estado");
String cpf = request.getParameter("cpf");
double salario = Double.parseDouble(request.getParameter("salario"));
if(codigo!=0){
Connection conn = null;
PreparedStatement pst = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance( );
conn =
DriverManager.getConnection("jdbc:mysql://localhost/cadastro",
"root","123");
String SQL = "UPDATE cliente SET " +
"nome=?,sobrenome=?" +
",rua=?,numero=?,bairro=?,cidade=?,estado=?" +
"cpf=?,salario=? WHERE codigo=?";
pst = conn.prepareStatement(SQL);
pst.setString(1, nome);
pst.setString(2, sobrenome);
pst.setString(3, rua);
pst.setInt(4, numero);
pst.setString(5, bairro);
pst.setString(6, cidade);
pst.setString(7, estado);
pst.setDouble(8, salario);
pst.setInt(9, codigo);
pst.executeUpdate( ); //<-- O PROBLEMA ESTA AQUI...
pst.clearParameters( );
out.println("Os dados do codigo: "+codigo+" foram atualizados");
%>
<p><p>
<a >Página principal</a>
<% } catch (Exception ex) {
ex.printStackTrace( );
out.println("Erro ao atualizar");
} finally {
if (pst != null) pst.close( );
if (conn != null) conn.close( );
}
}//end if
else{
out.println("Codigo inexistente");
}
%>
</body>

[color=darkblue] [/color]