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

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;


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!

[quote=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![/quote]

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:

[code] %>
//esta dentro de false do if
//ele NAO ESTA ENTRANDO AKI, esta dando um null pointer
<jsp:forward page=“reFormulario.jsp” />

<%
}
%>[/code]

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??

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” />

[quote=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” />
[/quote]

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??

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

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.