Passagem de parâmetro via URL com GET em JSP

7 respostas
S

Pessoal, estou com um problema com uma passagem de parâmetro via URL utilizando o método GET em JSP!

O que acontece é o seguinte: tenho um index.jsp que leva o seguinte código:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Sistema  WEB de Condomínio</title>
    </head>
    <body>
   <table align=center border=1 cellpadding=0 cellspacing=0 bordercolor=red width=760>
   <tr>
    <td colspan=3><%@ include file='header.jsp' %>
	</td>
   </tr>
   <tr>
    <td valign=top><%@ include file='menuleft.jsp'%>
	</td>
	<td>
	<%
         String id="";
         id = request.getParameter("id");
         if (id!="")
         {
           if (id=="1")
           {
             %><%@ include file='apartamento.jsp'%><%
           }
           else
             if (id=="2")
             {
               %><%@ include file='proprietario.jsp'%><%
             }
             else
               if (id=="3")
               {
                 %><%@ include file='despesa.jsp'%><%
               }
               else
                 if (id=="4")
                 {
                   %><%@ include file='pesquisa.jsp'%><%
                 }
                 else
                  if (id=="5")
                  {
                    %><%@ include file='ajuda.jsp'%><%
                  }
                  else
                  {
                    %><%@ include file='body.jsp'%><%
                  }
         }
         else
         {
           %><%@ include file='body.jsp'%><%
         }%>
	</td>
         <td valign=top><%@ include  file="menuright.jsp"%>
	</td>
   </tr>
   <tr>
    <td colspan=3><%@ include  file="footer.jsp"%>
	</td>
   </tr>
  </table>
    </body>
</html>

Eu tenho um menu que carrega as página de acordo com o “id” passado via GET:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Sistema  WEB de Condomínio</title>
    </head>
    <body>
  <table border=0 cellpadding=0 cellspacing=0 bordercolor=red width=150>
   <tr>
    <td>
	 <table valign=top>
	  <tr>
	   <td><font face=verdana size=1>
	    <a href='index.jsp'>Inicio</a>
	   </td>
      </tr>
	  <tr>
	   <td><font face=verdana size=1>
	    <a href=index.jsp?id=1>Apartamento</a>
	   </td>
      </tr>
      <tr>
	   <td><font face=verdana size=1>
	    <a href=index.jsp?id=2>Proprietário</a>
	   </td>
      </tr>
      <tr>
	   <td><font face=verdana size=1>
	    <a href=index.jsp?id=3>Despesa</a>
	   </td>
      </tr>
      <tr>
	   <td><font face=verdana size=1>
	    <a href=index.jsp?id=4>Pesquisa</a>
	   </td>
      </tr>
      <tr>
	   <td><font face=verdana size=1>
	    <a href=index.jsp?id=5>Ajuda</a>
	   </td>
	  </tr>
	 </table>
	</td>
   </tr>
  </table>
    </body>
</html>

O problema é que ele está carregando apenas a página padrão, que no caso é a “body.jsp”. Mesmo eu clicando nos links que endereçam o “id” a outros valores, a página default é carregada. O que vcs acham que seja isso? Já tentei colocar aspas no valor da variável (i.e. - “<a href=index.jsp?id=“1”>Apartamento”, mas não deu certo. Espero que me ajudem.
Abraço!

7 Respostas

jgbt

Ola,
vc não tem problema na passagem de parametro, vc esta com problema com o Java.
O tipo String no java é um objeto.
Comparação de objetos em Java é feita com o metodo equals, não com o operador ==.
De uma olhada na seção de tutoriais que vc vai achar alguns sobre fundamentos da linguagem, eles com com certeza vão te ajudar.

Uma dica:
Se vc esta mudando de linguagem, e essa nova linguagem utiliza um paradigma diferente do que vc esta acostumado, estudar esse paradigma vai te poupar muita dor de cabeça. Trocar asp ou php(por exemplo) por java e continuar progrmando como se ainda usasse essas linguagens nã ovai trazer grandes beneficios.

[]´s

baudamix

erro comum…
String são objetos unicos

if("1"=="1") 
// são objetos diferentes então essa comparação é sempre falso  
// cada objeto tem um endereço de memória diferentes e essa 
// comparação está comparando os endereço por isso é falso.

para comparar conteúdo de um String vc presiza usar o .equals();

if("1".equals("1")) // comparação certa 

// ou seu no seu caso...

if(id.equals("1")) // comparação certa

abr

S

Vou testar e ver no que dá. Eu já havia utilizado o equals mas tbm não tinha dado certo. Vou colocar da forma que vcs disseram e posto resultado aqui depois!

Vlw!

S

Assim deu certo:

<%
         String id="";
         if (request.getParameter("id")!=null)
         {
           id = request.getParameter("id");
         }
         if (!id.equals(""))
         {
           if (id.equals("1"))
           {
             %><%@ include file='apartamento.jsp'%><%
           }
           else
             if (id.equals("2"))
             {
               %><%@ include file='proprietario.jsp'%><%
             }
             else
               if (id.equals("3"))
               {
                 %><%@ include file='despesa.jsp'%><%
               }
               else
                 if (id.equals("4"))
                 {
                   %><%@ include file='pesquisa.jsp'%><%
                 }
                 else
                  if (id.equals("5"))
                  {
                    %><%@ include file='ajuda.jsp'%><%
                  }
                  else
                  {
                    %><%@ include file='body.jsp'%><%
                  }
         }
         else
         {
           %><%@ include file='body.jsp'%><%
         }%>
danielbussade

Olá uma sugestão tranforme seu ID em int e use switch acho que fica mais legível:

switch(var)

case1: "Teste";
        break;

Valeu!

S

Switch é muito Espaguete!

jgbt

cara,
não leve a mal, mas no seu caso o codigo ficaria espaguete da mesma maneira…
acho que vc devia dar uma olhada em algum framework web e tmb em algum para layout como o Tiles.

[]´s

Criado 3 de abril de 2008
Ultima resposta 4 de abr. de 2008
Respostas 7
Participantes 4