Erro no if!?

3 respostas
B

Ola galera sou novato aqui no portaljava, pretendo ajudar e ser ajudado!!!
Estou com um problema com um teste que compara string para fazer um validação em um formulario simples:
Exemplo retirado(Aplicação em JSP e Javabeans utilizando Banco de Dados)do javafree.org

cadastrar.jsp

<%@ page contentType="text/html" language="java" import="java.sql.*"%>
<jsp:useBean id="con" class="conexao.Conexao"/>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Cadastrar</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<br>
<form name="form1" method="post" action="pessoa.jsp">

<p align="center"><strong>Tabela Pessoa </strong></p>
<table align="center" border=1 cellspacing=0 cellpadding=0 >

   <tr>
    <td width=200><strong>
      Nome
   </strong></td>   
   <td width=50><strong>
      Idade
   </strong></td>   
   <td width=30><strong>
      Sexo
   </strong></td>
   </tr>


<%    
   try {

      con.setNome(request.getParameter("nomeField"));
      con.setIdade(Integer.parseInt(request.getParameter("idadeField")));
      con.setSexo(request.getParameter("sexoField"));
      con.inserirDados();
               
      con.setConsulta();
      ResultSet temp = con.getResultado();
      temp.next();
      
      if(request.getParameter("nomeField").equals(temp.getString("nome")))
         response.sendRedirect("http://localhost:8080/Form/pessoa.jsp?status=Registro  existente");
      
      do{
      %>
      <tr>
          <td width=200>
               <%out.print(temp.getString("nome"));%>
         </td>
          <td width=50>
               <%out.print(temp.getString("idade"));%>
         </td>
          <td width=30>
               <%out.print(temp.getString("sexo"));%>
         </td>
      </tr>
      <%}while (temp.next());
   
   }catch (Exception e) {
      e.printStackTrace();
   }
   
%>
</table>
  <p align="center">
    <input type="submit" name="Submit" value="voltar">
</p> 
<p align="center"><strong>Status:
    <input name="statusField" disabled type="text" id="statusField" size="36" value="<%=request.getParameter("nomeField")%> foi cadastrado com sucesso">
      </strong></p>
</form>
</body>
</html>

ERRO:
O cadastro esta aceitando nome repetido, cujo teste if era para cuidar...???

[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - marcossousa[/color][/size] :joia:

3 Respostas

M

[color=“green”][size=“18”]Seja bem vindo ao PJ![/size][/color]

se você estiver salvando em banco de dados sugiro fazer com que o banco controle isto, aliás, pode haver 2 pessoas com o mesmo nome… e não com um n° de cpf ou rg. Tem certeza que esta é a melhor solução?

:okok:

B

Obrigado Marcos, estou salvando em um banco…mas o problema é que gostaria de saber so o pq o if não funciona…pois no meu entender ele era para direcionar para a pagina pessoa.jsp toda vida que cadastrasse nome igual!!!

O problema é na comparação com o metodo .equals!!!mas eu não sei o pq!

“marcossousa”:
[color=“green”][size=“18”]Seja bem vindo ao PJ![/size][/color]

se você estiver salvando em banco de dados sugiro fazer com que o banco controle isto, aliás, pode haver 2 pessoas com o mesmo nome… e não com um n° de cpf ou rg. Tem certeza que esta é a melhor solução?

:okok:

P

<if(request.getParameter(“nomeField”).equals(temp.getString(“nome”)))
response.sendRedirect(“http://localhost:8080/Form/pessoa.jsp?status=Registro já existente”); >

passa o request primeiro pra uma variavel string pra depois vc comparar,nao sei se pode ser isso,
e na pior das hipoteses faça if(condicao){//abra e feche colchetes}

garanto nada auhahhaua

Criado 20 de junho de 2006
Ultima resposta 30 de jun. de 2006
Respostas 3
Participantes 3