${EL.parte2}

fevereiro 10, 2007 às 12:55 pm | Publicado em JEE | 2 Comentários

Continuando o post sobre a Expression Language, devemos prestar atenção em outro detalhe importante: objetos implícitos.

Os objetos implícitos da EL, assim como os da JSP, facilitam o acesso às propriedades ou métodos de objetos que podem estar em diferentes escopos da aplicação.

  • param e paramValues: Map com os parâmetros da requisição.
  • header e headerValues: Map com os cabeçalhos da requisição.
  • cookie: Map com os cookies da requisição.
  • initParam: Map com os parâmetros init do contexto.
  • pageScope, requestScope, sessionScope, applicationScope: Map com os atributos dos escopos.

Exemplos de uso dos objetos implícitos:

${param.nome}

${paramValues.cidades[1]}

${header.host} ou ${header[“host”]} – vimos a diferença na primeira parte do tutorial

${requestScope.pessoa.nome} – recupera o nome do objeto pessoa que está na requisição

E se você quiser obter o método utilizado na requisição HTTP (GET, POST, etc…). Precisamos invocar o método getMethod() do objeto request . Então podemos utilizar o objeto implícito requestScope para recuperar o método.

${requestScope.method}

Ops… Porque não funcionou? Lembre-se que requestScope é um map com os atributos da requisição. É apenas um Map com os atributos… Você não tem acesso às propriedades da requisição.

Eis que surge o objeto implícito pageContext. Este é o único objeto implícito que não é um Map. Através do pageContext podemos recuperar o objeto request:

${pageContext.request.method}

Outro ponto importante é a ordem em que o container procura por atributos nos diferentes escopos. Caso você não informe um escopo, a ordem será pageScope, requestScope, sessionScope e applicationScope.

ex:

em um servlet:

request.setAttribute(“nome”, “marcelo”);

session.setAttribute(“nome”, “maria”);

na jsp:

${requestScope.nome} – Marcelo //o atributo da requisição

${sessionScope.nome} -Maria // o atributo da sessão

${nome} – Marcelo // o atributo da requisição?

Se você não informar o escopo, o container primeiro procura pelo atributo “nome” no pageScope, se não encontrar nada, ele busca no requestScope. No exemplo, ele encontrou a propriedade no requestScope, então ele para a busca pelo atributo e imprime o atributo da requisição. Portanto, em alguns casos pode ser muito útil informar o escopo do atributo.

Comentem….

Anúncios

2 Comentários »

RSS feed for comments on this post. TrackBack URI

  1. Opa, obrigado!

  2. Muito boas suas dicas, bem explicadas, já pesquisei muito na net e a melhor explicação foi da ki, vc pode indicar a continação ou mais exemplos de requestScope e sessionScope.


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Crie um website ou blog gratuito no WordPress.com.
Entries e comentários feeds.

%d blogueiros gostam disto: