Variável de escopo

7 respostas
_

Aê galera,

olha minha página de login:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>


<html>


   <body>

     <c:set var="var_session" scope="session" value="${22}" />
     <c:set var="var_request" scope="request" value="${11}" />

     <form action="entrar" method="POST">
       <input type="text" name="login" />
       <input type="password" name="senha" />
       <input type="submit" value="Entrar!" />
     </form>

   </body>


</html>
E a página para a qual direciona:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>


<html>

  <p>Variaveis passadas:</p>

  <p style="color:blue">Variavel de SESSAO: <c:out value="${var_session}" /></p>
  <p style="color:red">Variavel de REQUISICAO: <c:out value="${var_request}" /></p>

  <body>
    Login: <c:out value="${param.login}" />
    Senha: <c:out value="${param.senha}" />
  </body>

</html>

O problema é que o resultado é

Variavel de SESSAO: 22

Variavel de REQUISICAO:

Entendem? Faltou o 11 !!

OBRIGADO !!!

7 Respostas

A

A solicitação que passa pela primeira página vai para a segunda?

Como você colocou o parametro no scope=“request” ele deve fazer parte da mesma solicitação, eu acho que é esse seu problema, de quelquer forma descreve o fluxo pra termos uma idéia.

Acho melhor você usar

${sessionScope.var_session}
${requestScope.var_request}

fica visível e o container não fica procurando o parametro.

_

Mesmo com <c:out value="${requestScope.var_request}" /> não funcionou!!

_

E sim, de login vai para a principal.

A

Então responda se as duas páginas fazem parte da mesma solicitação?
Se não faz parte da mesma solicitação, então não dá pra você recuperar o valor!

O dá sessão dá, pois o escopo da sessão dura até a ela ser invalidade ou remover o atributo.

Lembre-se que na página A você colocou no escopo solicitação, caso a página B não faz parte da mesma solicitação então sua lógica está furada, descreva o fluxo.

A

Olhando melhor o que você fez, você nunca vai ter o valor no requet.

Você tem duas páginas que não faz parte da mesma solicitação, acho melhor você rever alguns conceitos de escopo.

Aqui você criou um atributo na sessão, OK!

<c:set var="var_session" scope="session" value="${22}" />

Aqui na solicitação, isso é na primeira solicitação

<c:set var="var_request" scope="request" value="${11}" />

Quando o fluxo estiver na segunda página será uma nova solicitação o atributo já era, não existe.

Entendeu?

_

Entendi. Mas eu pensei que o request fosse de uma página pra outra…Assim do jeito que explicaste fica parecendo o escopo “page”.

A

Blz, no final você entendeu, é que as vezes eu escrevo rápido.

_pto:
Entendi. Mas eu pensei que o request fosse de uma página pra outra…Assim do jeito que explicaste fica parecendo o escopo “page”.

Criado 19 de janeiro de 2010
Ultima resposta 19 de jan. de 2010
Respostas 7
Participantes 2