Apuntes
Tag Libraries
Contenido del apunte (25)
Página 1
Agenda
Nessa apresentação veremos:
A necessidade do uso de JSTL (JSP Tag Libraries).
Discutiremos algumas das tags JSTL core:
< c:forEach >
< c:if >
< c:choose > com < c:when > e < c:otherwise >
< c:set >
< c:import > junto com < c:param >
Para bibliotecas de tags customizadas, nossa biblioteca de tags, iremos criar uma diretiva de biblioteca de tags para ser utilizada em uma página JSP e dado um objetivo de projeto, usaremos uma biblioteca de tags JSP Standard - JSTL V1.1 - tags da biblioteca de tags core.
Página 2
JSTL - JSP Tag Library
Em algumas ocasiões, EL e actions JSP padrão podem não ser suficientes para um desenvolvedor.
JSTL é uma biblioteca padrão de tags customizadas que podem ser utilizadas.
JSTL é uma biblioteca de tags para serem utilizadas em páginas JSP.
Página 3
Core JSTL tags
Veremos algumas tags JSTL da biblioteca core nessa apresentação.
Abaixo vemos algumas tags da biblioteca core que iremos discutir:
Página 4
< c:forEach >
A tag < c:forEach > é similar aos loops "for" de outras linguagens de programação.
A tag < c:forEach > é utilizada para iterar sobre arrays ou collections. Por exemplo:
Página 5
< c:forEach > (2)
'items' é o array a ser varrido e 'var' é a variável usada para iterar sobre cada item do array.
Também há um atributo opcional chamado 'varStatus' que se comporta como um contador no loop e outros atributos opcionais como begin e etc.
Também podemos aninhar tags < c:forEach >
A variável 'var' é restrita ao escopo da tag (não estará disponível fora da tag < c:forEach > ).
Página 6
< c:if >
A tag < c:if > é similar a sentença if em outras linguagens de programação
Sintaxe e exemplo.
O exemplo abaixo imprimirá "Five is greater than 3"
Página 7
< c:choose>
Devido ao fato de não haver 'else' em JSTL, múltiplos 'if' podem ser feitos através da tag < c:choose >:
Página 8
< c:choose > (2)
A tag < c:choose > é similar à construção 'switch' de outras linguagens.
Quando nenhum resultados dos testes é verdadeiro, será executada a tag < c:otherwise >
A tag < c:otherwise > é opcional no corpo da tag < c:choose >
Página 9
< c:set >
A tag < c:set > será usada para:
Configurar as propriedades de um bean ou de um Map.
Para configurar atributos de variáveis.
Para configurar atributos de variáveis, podemos utilizar o seguinte, onde 'scope' é opcional e 'var' é obrigatório e 'value' não pode ser vazio.
Se, conforme exemplo, não houver nenhum atributo chamado "name", então o comando < c:set > irá criar um novo atributo com esse nome e valor no escopo estabelecido.
Página 10
< c:set var=... >
A tag < c:set > pode ter um corpo tag, como abaixo:
Caso o valor seja avaliado como "null", o container removerá o atributo.
O corpo da tag será avaliado e usado como valor do atributo "cars"
Página 11
< c:set target... >
A tag < c:set target... > é usada para configurar o valor de um bean ou de um map.
O atributo 'target' deve avaliar um Objeto.
Assim como a tag < c:set var... >, a tag < c:set target="" > pode também ter um corpo podendo ser String ou uma expression.
Página 12
< c:set target... > (2)
O container lançará uma exceção quando:
A expressão 'target' for null
Caso a expressão 'target' não seja nem um bean e nem um Map.
Se a expressão for um bean mas não for encontrada a propriedade informada na tag < c:set target ...>
Página 13
< c:remove >
A tag < c:remove > será utilizada para remover atributos em quaisquer escopos.
'scope' será opcional, porém caso não seja especificado, o atributo em questão será removido de todos os escopos.
Página 14
< c:import >
A tag < c:import > representa outra maneira de importar conteúdo para o arquivo corrente.
O conteúdo do arquivo será incluído em tempo de requisição.
O atributo 'url' da tag < c:import > pode ser para obter um recurso de fora do container.
Página 15
< c:import > e < c:param >
Como no caso de standard actions JSP, parâmetros podem ser passados para um arquivo a ser incluído por meio da tag < c:param >
No exemplo abaixo, a página "whizlabs.jsp" será incluído na página corrente e o parâmetro de nome "apt_name" e valor "Rose" será passado ao arquivo incluído: whizlabs.jsp
Página 16
< c:url >
A tag c:url será utilizada para se fazer reescrita de URL ou "url rewriting".
O processo de "url rewriting" é baseado em anexar os ids de sessão dos usuários ao final da URL no caso de cookies estarem desabilitados.
Assim, no código abaixo adicionamos o id da sessão ao final de 'entry.jsp' para podermos rastrear a sessão.
Página 17
< c:param > e < c:url >
O processo de codificação de URL substituirá caracteres especiais ou espaços por outros caracteres na URL.
O atributo 'value' em c:url deve ser relativo.
O uso da tag < c:param > no corpo de < c:url > proporciona codificação de URL.
Página 18
Servlet
O programa a seguir procura ilustrar o uso de tags JSTL core e o uso da diretiva taglib.
O servlet abaixo cria um array de carros e o configura como um atributo no escopo de requisição.
Página 19
apt.java
Abaixo vemos o arquivo apt.java
Página 20
jstl_jsp.jsp
Aqui se encontra a página JSP jstl_jsp.jsp com todos os conceitos apresentados até então.
Página 21
parameters.jsp
Abaixo temos o arquivo parameters.jsp, o qual é chamado no arquivo jstl_jsp.jsp através da tag < c:url > que proporciona reescrita de URL e ainda há a possibilidade de passar parâmetros para a página, como foi feito pela chamada a < c:param name="title" value="john" /> no corpo da tag < c:url >
Página 22
Saída do programa
Abaixo vemos o resultado da execução do código realizado.
Página 23
Conclusão
Nessa apresentação discutimos:
Algumas das tags JSTL da biblioteca core.
Vimos um exemplo que ilustra a diretiva 'taglib' e algumas das tags JSTL da biblioteca core.
Página 24
Antes de rodar o código...
Antes de executar o código exemplo na sua máquina, você deve ir até o diretório de instalação do jdk do java e copiar os arquivos jstl.jar e standard.jar para:
<diretorio de instalação do jdk>\jre\lib\ext
Para que o compilador reconheça as tag libraries do JSTL.
Página 25
Configuração do arquivo web.xml
Abaixo temos a configuração do arquivo web.xml que para a chamada a carServlet
Información
- Descripción
- Concursos Públicos (OCEJWCD 6 ONLINE COURSE) Desenvolvimento de Software Apunte sobre Tag Libraries, creado por Luis Felipe Guariento el 07/03/2018.
- Creado por
- Luis Felipe Guariento · mar 2018
- Actualizado
- 8 mar 2018
- Visitas
- 0
- Valoración