JSP - Tutorial de biblioteca de tags padrão (JSTL)
Neste capítulo, vamos entender as diferentes tags em JSP. A JavaServer Pages Standard Tag Library (JSTL) é uma coleção de tags JSP úteis que encapsula a funcionalidade central comum a muitos aplicativos JSP.
JSTL tem suporte para tarefas estruturais comuns, como iteração e condicionais, tags para manipular documentos XML, tags de internacionalização e tags SQL. Ele também fornece uma estrutura para integrar as tags customizadas existentes com as tags JSTL.
Instalar biblioteca JSTL
Para começar a trabalhar com tages JSP, você precisa primeiro instalar a biblioteca JSTL. Se você estiver usando o contêiner Apache Tomcat, siga estas duas etapas -
Step 1- Baixe a distribuição binária do Apache Standard Taglib e descompacte o arquivo compactado.
Step 2 - Para usar o Taglib padrão de seu Jakarta Taglibs distribution, simplesmente copie os arquivos JAR no diretório 'lib' da distribuição para o diretório de seu aplicativo webapps\ROOT\WEB-INF\lib diretório.
Para usar qualquer uma das bibliotecas, você deve incluir uma diretiva <taglib> no topo de cada JSP que usa a biblioteca.
Classificação das tags JSTL
As tags JSTL podem ser classificadas, de acordo com suas funções, nos seguintes grupos de bibliotecas de tags JSTL que podem ser usados ao criar uma página JSP -
Core Tags
Formatting tags
SQL tags
XML tags
JSTL Functions
Tags principais
O grupo principal de tags são as tags JSTL mais comumente usadas. A seguir está a sintaxe para incluir a biblioteca JSTL Core em seu JSP -
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
A tabela a seguir lista as principais tags JSTL -
S.No. | Tag e descrição |
---|---|
1 | <c: out>
Como <% = ...>, mas para expressões. |
2 | <c: set>
Define o resultado de uma avaliação de expressão em um 'scope' |
3 | <c: remove>
Remove um scoped variable (de um escopo particular, se especificado). |
4 | <c: catch>
Pega qualquer Throwable que ocorre em seu corpo e, opcionalmente, o expõe. |
5 | <c: if>
Tag condicional simples que avalia seu corpo se a condição fornecida for verdadeira. |
6 | <c: escolha>
Tag condicional simples que estabelece um contexto para operações condicionais mutuamente exclusivas, marcada por <when> e <otherwise>. |
7 | <c: quando>
Subtag de <choose> que inclui seu corpo se sua condição avalia 'true'. |
8 | <c: caso contrário>
Subtag de <choose> que segue o <when> marca e executa apenas se todas as condições anteriores avaliadas para 'false'. |
9 | <c: import>
Recupera um URL absoluto ou relativo e expõe seu conteúdo para a página, uma String em 'var', ou um leitor em 'varReader'. |
10 | <c: forEach>
A tag de iteração básica, que aceita muitos tipos de coleção diferentes e oferece suporte a subconjuntos e outras funcionalidades. |
11 | <c: forTokens>
Itera sobre tokens, separados pelos delimitadores fornecidos. |
12 | <c: param>
Adiciona um parâmetro a um contendo 'import' URL da tag. |
13 | <c: redirect>
Redireciona para um novo URL. |
14 | <c: url>
Cria um URL com parâmetros de consulta opcionais |
Tags de formatação
As tags de formatação JSTL são usadas para formatar e exibir texto, a data, a hora e números para sites internacionalizados. A seguir está a sintaxe para incluir a biblioteca de formatação em seu JSP -
<%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt" %>
A tabela a seguir lista as tags de formatação JSTL -
S.No. | Tag e descrição |
---|---|
1 | <fmt: formatNumber>
Para renderizar valor numérico com precisão ou formato específico. |
2 | <fmt: parseNumber>
Analisa a representação de string de um número, moeda ou porcentagem. |
3 | <fmt: formatDate>
Formata uma data e / ou hora usando os estilos e padrões fornecidos. |
4 | <fmt: parseDate>
Analisa a representação de string de uma data e / ou hora |
5 | <fmt: bundle>
Carrega um pacote de recursos a ser usado por seu corpo de tag. |
6 | <fmt: setLocale>
Armazena a localidade fornecida na variável de configuração local. |
7 | <fmt: setBundle>
Carrega um pacote de recursos e o armazena na variável com escopo nomeado ou na variável de configuração do pacote. |
8 | <fmt: timeZone>
Especifica o fuso horário para qualquer formatação de hora ou ações de análise aninhadas em seu corpo. |
9 | <fmt: setTimeZone>
Armazena o fuso horário fornecido na variável de configuração do fuso horário |
10 | <fmt: mensagem>
Exibe uma mensagem internacionalizada. |
11 | <fmt: requestEncoding>
Define a codificação de caracteres do pedido |
Tags SQL
A biblioteca de tags JSTL SQL fornece tags para interagir com bancos de dados relacionais (RDBMSs), como Oracle, mySQL, ou Microsoft SQL Server.
A seguir está a sintaxe para incluir a biblioteca JSTL SQL em seu JSP -
<%@ taglib prefix = "sql" uri = "http://java.sun.com/jsp/jstl/sql" %>
A tabela a seguir lista as tags SQL JSTL -
S.No. | Tag e descrição |
---|---|
1 | <sql: setDataSource>
Cria um DataSource simples adequado apenas para prototipagem |
2 | <sql: query>
Executa a consulta SQL definida em seu corpo ou por meio do atributo sql. |
3 | <sql: update>
Executa a atualização SQL definida em seu corpo ou por meio do atributo sql. |
4 | <sql: param>
Define um parâmetro em uma instrução SQL para o valor especificado. |
5 | <sql: dateParam>
Define um parâmetro em uma instrução SQL para o valor java.util.Date especificado. |
6 | <sql: transação>
Fornece elementos de ação de banco de dados aninhados com uma conexão compartilhada, configurada para executar todas as instruções como uma transação. |
Tags XML
As tags JSTL XML fornecem uma maneira centrada em JSP de criar e manipular os documentos XML. A seguir está a sintaxe para incluir a biblioteca JSTL XML em seu JSP.
A biblioteca de tags JSTL XML possui tags personalizadas para interagir com os dados XML. Isso inclui analisar o XML, transformar os dados XML e o controle de fluxo com base nas expressões XPath.
<%@ taglib prefix = "x"
uri = "http://java.sun.com/jsp/jstl/xml" %>
Antes de prosseguir com os exemplos, você precisará copiar as seguintes duas bibliotecas relacionadas a XML e XPath em seu <Tomcat Installation Directory>\lib -
XercesImpl.jar - Baixe-o de https://www.apache.org/dist/xerces/j/
xalan.jar - Baixe-o de https://xml.apache.org/xalan-j/index.html
A seguir está a lista de tags XML JSTL -
S.No. | Tag e descrição |
---|---|
1 | <x: out>
Como <% = ...>, mas para expressões XPath. |
2 | <x: parse>
Usado para analisar os dados XML especificados por meio de um atributo ou no corpo da tag. |
3 | <x: definir>
Define uma variável com o valor de uma expressão XPath. |
4 | <x: if>
Avalia uma expressão XPath de teste e, se for verdadeira, processa seu corpo. Se a condição de teste for falsa, o corpo será ignorado. |
5 | <x: forEach>
Para fazer um loop sobre nós em um documento XML. |
6 | <x: escolher>
Tag condicional simples que estabelece um contexto para operações condicionais mutuamente exclusivas, marcada por <when> e <otherwise> Tag. |
7 | <x: quando>
Subtag de <choose> isso inclui seu corpo se sua expressão for avaliada como 'verdadeira'. |
8 | <x: caso contrário>
Subtag de <choose> que segue o <when> marca e é executado apenas se todas as condições anteriores forem avaliadas como 'falsas'. |
9 | <x: transformar>
Aplica uma transformação XSL em um documento XML |
10 | <x: param>
Usado junto com o transform tag para definir um parâmetro na folha de estilo XSLT |
Funções JSTL
JSTL inclui várias funções padrão, a maioria das quais são funções comuns de manipulação de strings. A seguir está a sintaxe para incluir a biblioteca de funções JSTL em seu JSP -
<%@ taglib prefix = "fn"
uri = "http://java.sun.com/jsp/jstl/functions" %>
A tabela a seguir lista as várias funções JSTL -
S.No. | Descrição da função |
---|---|
1 | fn: contém ()
Testa se uma string de entrada contém a substring especificada. |
2 | fn: containsIgnoreCase ()
Testa se uma string de entrada contém a substring especificada de uma maneira que não diferencia maiúsculas de minúsculas. |
3 | fn: endsWith ()
Testa se uma string de entrada termina com o sufixo especificado. |
4 | fn: escapeXml ()
Caracteres de escape que podem ser interpretados como marcação XML. |
5 | fn: indexOf ()
Retorna o índice dentro de uma string da primeira ocorrência de uma substring especificada. |
6 | fn: join ()
Une todos os elementos de uma matriz em uma string. |
7 | fn: comprimento ()
Retorna o número de itens em uma coleção ou o número de caracteres em uma string. |
8 | fn: substituir ()
Retorna uma string resultante da substituição em uma string de entrada de todas as ocorrências com uma determinada string. |
9 | fn: split ()
Divide uma string em uma matriz de substrings. |
10 | fn: startsWith ()
Testa se uma string de entrada começa com o prefixo especificado. |
11 | fn: substring ()
Retorna um subconjunto de uma string. |
12 | fn: substringAfter ()
Retorna um subconjunto de uma string seguindo uma substring específica. |
13 | fn: substringBefore ()
Retorna um subconjunto de uma string antes de uma substring específica. |
14 | fn: toLowerCase ()
Converte todos os caracteres de uma string em minúsculas. |
15 | fn: toUpperCase ()
Converte todos os caracteres de uma string em maiúsculas. |
16 | fn: trim ()
Remove espaços em branco de ambas as extremidades de uma string. |