Cursos / Informática para Internet / Desenvolvimento Web I / Aula

arrow_back Aula 07 - Introdução ao JSTL

A biblioteca core II

Uma vez que explicamos a funcionalidade dessa tag, vamos agora mostrar e explicar cada um dos seus atributos.

Atributo Descrição Obrigatório Valor default
value Valor a ser avaliado e exibido Sim
default Valor que será exibido, caso o value seja vazio ou nulo Não Body
escapeXml Escapa alguns caracteres que são marcadores HTML Não true
Quadro 3 - Atributos da tag c:out

O atributo value é uma expressão que é avaliada no servidor na hora que a página JSP está sendo processada (veremos esse atributo com mais detalhes em uma próxima aula sobre expressões e quais variáveis podem ser usadas nessas expressões). Como vimos anteriormente, há uma ordem de avaliação nessa expressão com relação a onde essas variáveis serão procuradas primeiramente (página,request, sessão e aplicação). Além disso, caso o resultado dessa avaliação seja o valor null, uma string vazia será retornada.

Uma vez que podemos ter como resultado da avaliação do atributo value uma string vazia, essa tag define um atributo de nome default, cujo valor é usado no lugar da string vazia. Existem duas formas de se usar um valor padrão (default). A primeira e mais óbvia é usar o atributo default da tag (ver Listagem 3). A outra forma é não especificar o atributo default, deixando o valor a ser utilizado no corpo da tag (ver Listagem 4).

Listagem 3 - Código JSP que usa o atributo default para exibir “guest” se ${user} for vazio Listagem 4 - Código JSP que usa o body da tag c:out para exibir “guest” se ${user} for vazio

O terceiro atributo da tag <c:out> é o escapeXml, um atributo booleano cujo valor padrão é true. O escapeXml é usado para verificar se é necessário trocar caracteres especiais por seus respectivos códigos em HTML, como " para as aspas duplas. Isso evita que, se a tag for usada dentro de uma marcação HTML, o resultado da avaliação da expressão quebre o HTML gerado. Veja o exemplo a seguir:

 Exemplo de código (e tela) usando escapeXml

Perceba que a palavra você não apareceu na primeira caixa de texto porque essa palavra está entre aspas duplas, gerando um código HTML como:

<input type="text" name="meu filme" value="Eu sou mais "você"">

Dessa forma, a primeira aspas duplas do “você” está fechando, antecipadamente, o valor do atributo value, deixando a palavra você de fora. Note o destaque no valor associado ao atributo value. Perceba também que no código JSP do exemplo a tag c:out não está “ignorando” o caractere que representa as aspas duplas (escapeXml=false). Caso isso não tivesse sido indicado, ou seja, fosse utilizado o valor padrão (escapeXml=true), o texto gerado seria:

<input type="text" name="meu filme" value="Eu sou mais " você"">

Já a tag c:catch funciona como um complemento ao mecanismo de controles de erro do JSP. Essa tag permite ao desenvolvedor capturar exceções que não são de partes cruciais da página e tratar elas sem que haja a necessidade de invocar a página de erro, que vimos em aulas anteriores. Qualquer exceção que seja lançada em código encapsulado por essa tag é armazenada em uma variável definida pelo atributo var e pode ser utilizada para o que for necessário dentro do escopo da página, como podemos ver no exemplo abaixo:

Versão 5.3 - Todos os Direitos reservados