Alterar dados em JSP

7 respostas
Z

Boa noite, como faço para fazer uma alteração no sistema

erro:

java.lang.NullPointerException
	servlet.alterContrib.service(alterContrib.java:43)

código:

package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author Wagner Vielmond
 */
public class alterContrib extends HttpServlet {
    
    Contrib contrib = new Contrib();

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        //imprime o que foi gravado
        //escreve o texto de teste
        out.println("<html>");
        out.println("<head><title>Sistema Ges-Obras WEB</title><style type=text/css>@import url(css/estilo.css);</style></head>");
        out.println("<body>");
        out.println("<div class='center' align=center>");
        out.print("<table class=table2 align=center>");
        out.print("<tr>");
        out.print("<td align=right>");
        out.print("<input type=button onclick=home() value='HOME' class=btn tabindex=1 /> ");
        out.print("<input type=button onclick=cadContrib() value='CADASTRAR CONTRIBUINTE' class=btn tabindex=2 /> ");
        out.print("<input type=button value='SOLICITAÇÕES' class=btn tabindex=2 />");
        out.print("</td>");
        out.print("</tr>");
        out.print("</table>");
        out.println("<table class=table><tr><td class=topotab>Bem-vindo ao GES OBRAS WEB</td></tr>");
        if(contrib.getNome().isEmpty() || contrib.getRua().isEmpty()){
            out.println("<tr><td align=center style='font-size:2.0em;padding:10px;font-family:arial black;color:#ccc'><img src='img/carregando.gif'> Preencha todos os campos!...</td></tr>");
        }else{

            String sql="UPDATE CONTRIBUINTE SET NOME_CONTRIBUINTE=?, NUMERO=?, FONE=? WHERE ID_CONTRIBUINTE=?";
            try{
                Connection con = new ConnectionFactory().getConnection();
                PreparedStatement stmt = con.prepareStatement(sql);
                stmt.setString(1, contrib.getNome());
                stmt.setInt(2, contrib.getNumero());
                stmt.setString(3, contrib.getFone());
                stmt.setLong(4, contrib.getId());
                stmt.close();
                con.close();
            }catch (SQLException ex) {
                Logger.getLogger(alterContribuinte.class.getName()).log(Level.SEVERE, null, ex);
            }        catch (ClassNotFoundException ex) {
                Logger.getLogger(alterContribuinte.class.getName()).log(Level.SEVERE, null, ex);
            }

        out.println("<tr><td align=center style='font-size:2.0em;padding:10px;font-family:arial black;color:#ccc'><img src='img/carregando.gif'> Cadastrando...</td></tr>");
        }
        out.println("</table>");
        out.println("</div>");
        out.println("<div class=footer>");
        out.println("Todos os direitos reservados à Prefeitura Municipal de Santiago - Cidade Educadora<br />&copy; 2011 PM Santiago-RS :: developed by vielmond.net");
        out.println("</div>");
        out.println("</body>");
        out.println("</html>");
        out.println("<script type=text/javascript>");
        out.println("function home(){");
        out.println("document.location.href='/gesweb/home';");
        out.println("}");
        out.println("function cadContrib(){");
        out.println("document.location.href='/gesweb/newcontrib.html';");
        out.println("}");
        out.println("</script>");
        out.println("<meta http-equiv='refresh' content='3;URL=/gesweb/home'>");
        }
}

7 Respostas

H

contrib.getNome está retornando Null e vc está tentando acessar o método isEmpty mas o nome está null. contrib.getNome().isEmpty()

Z

hummm

e se eu fizer:

contrib.getNome() == null

???

vou testar!

S

Pode ser que contrib.getRua() também esteja nulo. Antes de acessar uma referência, verifique sempre se esta aponta para um objeto em memória.

Exemplo:

Contrib contrinb = new Contrib();

if (contrib.getNome() != null && contrib.getNome().isEmpty() ||
    contrib.getRua() != null && contrib.getRua().isEmpty())
{
 // seu código quando qualquer .isEmpty() == true
}
else
{
 // seu código quando os dois isEmpty() == false ou as duas referências nula.
}

Pela especificação do operador lógico &&, a segunda expressão não será executada caso a primeira retorne FALSE ( falso ).

Z

uma outra pergunta:

nao estou conseguindo usar o

out.println("<script>setTimeout('time()',3000)</script><div id='txt'>carregando...</div>");

nao executa nada.

sera que to fazendo algo errado?

e no final ta assim:

out.println("<script>function time() { document.ElementById('txt').innerHTML=' '}</script>");

aki para apagar a msg.

mas nada acontece.

S

A saída será na console do servidor onde está rodando a aplicação.

Z

pode me dar um exemplo, nao consegui entender!

obrigado

ahh, e sempre to recebendo nulo os campos

será q to fazendo errado?

aki to tentando fazer o update!!!

String sql="UPDATE CONTRIBUINTE SET NOME_CONTRIBUINTE=?, NUMERO=?, FONE=? WHERE ID_CONTRIBUINTE=?"; try{ Connection con = new ConnectionFactory().getConnection(); PreparedStatement stmt = con.prepareStatement(sql); stmt.setString(1, contrib.getNome()); stmt.setInt(2, contrib.getNumero()); stmt.setString(3, contrib.getFone()); stmt.setLong(4, contrib.getId()); stmt.close(); con.close(); }catch (SQLException ex) { Logger.getLogger(alterContribuinte.class.getName()).log(Level.SEVERE, null, ex); } catch (ClassNotFoundException ex) { Logger.getLogger(alterContribuinte.class.getName()).log(Level.SEVERE, null, ex); }

aki é onde passo os parametros

<form action="alterContrib" method="post"> <table class="table" align="center"> <tr><td colspan="2" class="topotab">Editar contribuinte</td></tr> <tr><td>Nome:</td><td><input type="text" name="nome" size="100" class="input" tabindex="1" value="<%= request.getParameter("nome")%>"></td></tr> <tr><td>Fone:</td><td><input id="phone" type="text" name="fone" size="30" class="input" tabindex="2" value="<%= request.getParameter("fone")%>"></td><br> <tr><td>Rua:</td><td><input type="text" name="rua" size="100" class="input" tabindex="3"></td></tr> <tr><td>Número:</td><td><input type="text" name="numero" size="5" class="input" tabindex="4" value="<%= request.getParameter("numero")%>"></td></tr> <!--<tr><td>Data do cadastro:</td><td><input type="text" id="date" name="data" size="10" class="input" tabindex="5"></td></tr>--> <tr> <td colspan="2" align="right" style="border-top: 1px solid black"> <input type="submit" value="Editar contribuinte" class="btn" tabindex="5" /> <!--<input type="reset" value="Limpar todos os dados" class="btn" tabindex="6" />--> </td> </tr> </table> </form>

será q to fazendo confuzão??

valeu pessoal

A

posta o seu código completo tanto da classe quanto da página que fica mais fácil auxiliar

Criado 13 de dezembro de 2011
Ultima resposta 20 de dez. de 2011
Respostas 7
Participantes 4