Por que não está entrando no 'else' aqui no .jsp?

6 respostas
comedor_de_folhas

pessoal…

vejam o .jsp abaixo, ele tem um if .

*qnd eu preencho todos os campos do meu formulario, uma classe de validação é chamada, e é chamado seu metodo que retorna true se todos os campos estiverem sidos preenchidos corretamente (assim o if executa o código da 1° chave {}) que no caso, vai ‘inserir’ os dados no bd (isso esta funcionando).

  • se estiver faltando ‘rg’ ou ‘nome’ o método retorna false e é pra ser executado o código do ‘else’ (que é um <jsp:forward page=“reFormulario.jsp” /> )

Mas quando eu deixo um campo vazio, ele nao consegue entrar no ‘else’
[color=red]alguem consegue me dizer o q pode estar errado? [/color]

segue o codigo do jsp abaixo:

&lt;%@ page import="aff.Validacao" %&gt;

&lt;jsp:useBean id="idPessoa" class="aff.Pessoa"  scope="request"  /&gt;
&lt;jsp:useBean id="idPessoaDB" class="aff.PessoaDB"  scope="request"  /&gt;
&lt;jsp:useBean id="idValidacao" class="aff.Validacao"  scope="request"  /&gt;

&lt;%
	String tempNome  = request.getParameter("nome");
	String tempEnd   = request.getParameter("endereco");;
	String tempCida  = request.getParameter("cidade");;
	String tempTele  = request.getParameter("telefone");;
	String tempRg    = request.getParameter("rg");;
	String tempEmail = request.getParameter("email");;
	
	idPessoa.setNome(tempNome);
	idPessoa.setEndereco(tempEnd);
	idPessoa.setCidade(tempCida);
	idPessoa.setTelefone(tempTele);
	idPessoa.setRg(tempRg);  
	idPessoa.setEmail(tempEmail);

out.println("vai entrar no if | ");

if(idValidacao.ehValido(idPessoa)){
	out.println("esta dentro de true");
		idPessoaDB.inserir(idPessoa); 
	}else{
	
	idPessoa.setNome("");
	idPessoa.setEndereco("");
	idPessoa.setCidade("");
	idPessoa.setTelefone("");
	idPessoa.setRg("");  
	idPessoa.setEmail("");
%&gt;
//esta dentro de false do if
//ele NAO ESTA ENTRANDO AKI, esta dando um null pointer
&lt;jsp:forward page="reFormulario.jsp" /&gt;

&lt;% 
}
%&gt;

6 Respostas

davidbuzatto

Mas vc está testando o somente o ID, vc tem que colocar mais algumas condições no if verificando se os campos desejados nao estão vazios.

Até mais!

comedor_de_folhas
davidbuzatto:
Mas vc está testando o somente o ID, vc tem que colocar mais algumas condições no if verificando se os campos desejados nao estão vazios.

Até mais!

eu estou testando as outras condiçoes... veja bem o 'idPessoa' é o nome do objeto da classe Pessoa ,essa classe tem varios atributos . idPessoa então é um objeto cheio de atributos preenchidos.

mas até ai esta td bem, ele esta entrando nessa parte do if, o problema é quando eu deixo de preencher algum atributo, dai a classe de validação retorna false ...ai ele nao esta entrando nessa parte:
%>
 //esta dentro de false do if
 //ele NAO ESTA ENTRANDO AKI, esta dando um null pointer
 <jsp:forward page="reFormulario.jsp" />
 
 <% 
 }
 %>

dá um null pointer exception!!!!!!!

para usar essa linha:
<jsp:forward page="reFormulario.jsp" />
*eu tenho q fazer mais alguma coisa?? importar, setar alguma coisa??
felixfabiano

bom dia
Por curiosidade, não seria necessário fazer o import das classes: Pessoa e PessoaDB?

<%@ page import=“aff.Validacao” %>

<jsp:useBean id=“idPessoa” class=“aff.Pessoa”  scope=“request”  />

<jsp:useBean id=“idPessoaDB” class=“aff.PessoaDB”  scope=“request”  />

<jsp:useBean id=“idValidacao” class=“aff.Validacao”  scope=“request”  />
comedor_de_folhas

felixfabiano:
bom dia
Por curiosidade, não seria necessário fazer o import das classes: Pessoa e PessoaDB?

<%@ page import=“aff.Validacao” %>

<jsp:useBean id=“idPessoa” class=“aff.Pessoa”  scope=“request”  />

<jsp:useBean id=“idPessoaDB” class=“aff.PessoaDB”  scope=“request”  />

<jsp:useBean id=“idValidacao” class=“aff.Validacao”  scope=“request”  />

</blockquote>

Intaum!! do jeito que está, se eu preencher todos os campos, eu consigo inserir no BD sem problemas!!!

essa é uma boa pergunta: pra se usar um jsp:useBean é necessario fazer o import da classe antes??

A

Uma dica !

Por que usar codigo java em pagina Jsp ? Por que vc nao faz o tratamento todo em uma classe, fica mais organizado e melhor de dar manutenção !

falo

lmprates

marsola2k tem razão, você deve passar esse seu código java para dentro de um servlet.

O nullPointerException pode ser porque o formulário que esta postanto as informações para esta página jsp, não está enviando um dos atributos do objeto idPessoa, assim, quando o teu código tenta ler esse atributo e ele está null, é disparada uma exceção. Se for isto, você deve enviar este atributo nem que seja com “” no valor.

Criado 1 de julho de 2007
Ultima resposta 3 de jul. de 2007
Respostas 6
Participantes 5