Problemas com NULL

:?: :?:

Estou tendo um grave problema para perguntar se uma variável String é null ou não.
Estou fazendo o seguinte:


 <form name="form_prog_fin" method="POST"> 
   <input type="text" name="nome"   />
   <input type="submit" name="botao" value="Botao"   />
</form>

<%
String nome = request.getParameter("nome"); 
        if (nome != null ) { 
           out.println("faz outra coisa...");
           out.println("nome: "+ nome);
       }
       else if(nome.trim().equals("")){
           out.println("faz alguma coisa...");
           out.println("nome: "+ nome);
       }else { 
           out.println("faz nenhuma coisa..."); 
           out.println("nome: "+ nome);
       } 
%>

O campo inicia-se como null, então ele não entra no IF quando chega do ELSE IF ele dá erro de [color=“red”]java.lang.NullPointerException [/color].

Por que que ele dá esse erro quando entra no ELSE IF???

:martelada:

<form name="form_prog_fin" method="POST"> 
   <input type="text" name="nome"   /> 
   <input type="submit" name="botao" value="Botao"   /> 
</form> 

<% 
String nome = request.getParameter("nome"); 
        if (nome != null ) { 
           out.println("faz outra coisa..."); 
           out.println("nome: "+ nome); 
       } 
      //Esta dando NullPointerException porque vc esta tentando acessar o
      //método trim() do atributo nome, que neste caso esta null, pois não
      //entrou no primeiro if 
      else if(nome.trim().equals("")){ 
           out.println("faz alguma coisa..."); 
           out.println("nome: "+ nome); 
       }else { 
           out.println("faz nenhuma coisa..."); 
           out.println("nome: "+ nome); 
       } 
%> 

Esta respondido no código… :wink:

você deveria ter invertido os IF’s entende?!

cya!

Seria algo assim:

<form name="form_prog_fin" method="POST"> 
   <input type="text" name="nome"   /> 
   <input type="submit" name="botao" value="Botao"   /> 
</form> 

<% 
String nome = request.getParameter("nome"); 
        if (nome == null ) { 
           out.println("faz outra coisa..."); 
           out.println("nome: "+ nome); 
       } 
       else if(nome.trim().equals("")){ 
           out.println("faz alguma coisa..."); 
           out.println("nome: "+ nome); 
       }else { 
           out.println("faz nenhuma coisa..."); 
           out.println("nome: "+ nome); 
       } 
%> 

:wink: