Erro de else sem if [resolvido]

9 respostas
C

Olá!

Estou com problema nesta código de erro de else sem if

<% if (acesso.getCompromisso()=="") {

%>
  <script type="text/javascript">
	alert("DIGITE O COMPROMISSO!");
  </script>
<%
 else{

     acesso.setTarefa(2);
        if(acesso.getTarefa()==2)
       {
          acesso.fazTarefa();
       }
    }
}
%>

Alguém sabe ql é o erro?

9 Respostas

M

Não fechaste o if antes do else. Tem que prestar mais atenção nisso.

Até!

F

Inton fora a “}” que vc esqueceu vc esta querendo comparar uma String desse modo, acho que não é bem assim

if (acesso.getCompromisso()=="")

eu costumo fazer assim

if("".equalsIgnoreCase(acesso.getCompromisso())

espero ter ajudado

C

Hummm…verdade…

Vlw

M

fabiel:
Inton fora a “}” que vc esqueceu vc esta querendo comparar uma String desse modo, acho que não é bem assim

if (acesso.getCompromisso()=="")

eu costumo fazer assim

if("".equalsIgnoreCase(acesso.getCompromisso())

espero ter ajudado


Desde que a criação de ambos os objetos não seja explícita - String abc = new String(“abc”) - , a operador == identificará ambos objetos como iguais desde que os conteúdos sejam também iguais, por causa de um recurso da JVM, o pool de strings.
Isso:

String abc1 = "abc"; String abc2 = "abc"; System.out.println(abc1==abc2); , teria como saída true, mas:

String abc1 = "abc"; String abc2 = new String("abc"); System.out.println(abc1==abc2); , teria como saída false. O uso do método equals compara os conteúdos, independente do pool e das referências.
Uma outra dica que eu costumo dar, se o String veio diretamente de um char[] - tipo característico de transação por sockets - , procurar executar um trim(), pois pode ocorrer um false sendo que os conteúdos são humanamente iguais, mas para um char[] ser um String, é colocado no final do array um byte zero - ‘\0’ - , e isso não é retirado do objeto.

Até!

C

Pessoal!

Ainda há um erro nesse código que mandei:

<% if("".equalsIgnoreCase(acesso.getCompromisso()))
{
  %>
   <script type="text/javascript">
 	alert("DIGITE O COMPROMISSO!");
   </script>
 <%
}else
{
 acesso.setTarefa(2);
         if(acesso.getTarefa()==2)
        {
           acesso.fazTarefa();
        }
 }

 %>

Pois o alert aparece assim que o formulario é chamado.

Como faço para ele aparecer só qd eu clicar em cadastrar e o campo compromisso estiver vazio?

Grata

M

Estude JavaScript que terás o que queres. O scriptlet executa em servidor, por isso que ele inicia o alert logo que o formulário é carregado.

Até!

C

ah tah…

Obrigada

M
Terias que colocar um código do tipo:
<head><script>
function validarCampo(){
  if(document.form1.compromisso.value==""){
    alert("Campo compromisso vazio!");
    return false;
  }else{
    return true;
  }
}
</script></head>
<html>
....
<input type="submit" onclick="validarCampo()">
...

Até!

C

Consegui arrumar…ao entrar na tela o compromisso estava com valo vazio, por isso estava aparecendo o Alert assim que entro no form então fiz:

<%
acesso.setCompromisso("1");
%>

<form method="POST" action="compromisso.jsp?compromisso=<%=acesso.getCompromisso()%>">
	<p>Bem Vindo(a) a sua Agenda !</p>
	<p>&nbsp;</p>

	<p>
	<input type="submit" value="Agendar Compromissos" name="B3" style="width: 165; height: 30">&nbsp;&nbsp;

</form>

Vlw pela ajuda gente…

Criado 9 de abril de 2007
Ultima resposta 11 de abr. de 2007
Respostas 9
Participantes 3