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:
<%@ 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" />
<%
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("");
%>
//esta dentro de false do if
//ele NAO ESTA ENTRANDO AKI, esta dando um null pointer
<jsp:forward page="reFormulario.jsp" />
<%
}
%>
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.