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

arrow_back Aula 08 - JSTL – Internacionalização, Taglib functions e expression language

A taglib functions

Acabamos de ver algumas das tags de internacionalização disponíveis na JSTL. Vamos agora continuar nossos estudos mostrando as funções de JSTL que manipulam Strings e descobrem o tamanho das coleções e Strings, bem como EL (Expression Language), que é uma alternativa mais elegante ao uso de scriptlets. Vamos lá, então, começando pelas funções JSTL.

As funções JSTL possuem, basicamente, dois conjuntos de funcionalidades. A primeira trata das funções básicas de String, como trim(), toUpperCase(), substring() etc. A segunda possui a única finalidade de, dada uma coleção ou uma String, descobrir qual o seu tamanho. O quadro a seguir mostra o conjunto de funcionalidades existentes.

Área Funcionalidade Tag Prefixo
Funções Tamanho de coleções. Manipulação de Strings. fn
Length toUpperCase, toLowerCase, substring, substringAfter, substringBefore, trim, replace, indexOf, startsWith, endsWith, contains, containsIgnoreCase, split, join, escapeXml
Quadro 9 - Funcionalidades detalhadas da biblioteca functions

Cada uma dessas funcionalidades tem a mesma semântica dos métodos da classe java.lang.String, exceto no caso dos tags substringAfter, substringBefore, containsIgnoreCase e join, visto que eles não possuem métodos correspondentes para suas funcionalidades na classe String. Por isso, o nosso foco será justamente nessas tags. Veremos, também, a funcionalidade length. Caso tenha alguma dúvida em relação às funções da classe Java.lang.String, busque informações no manual da linguagem.

Antes de começarmos a explicar a taglib functions, é necessário explicar uma pequena diferença entre essa tag e as demais. As taglibs que vimos antes, core e I18N, definem um conjunto de atributos que são usados para que a tag execute adequadamente. Entretanto, a taglib functions não funciona assim. Na verdade, ela define uma assinatura de método, como seus parâmetros e tipo de retorno, que devem ser invocados de forma similar à invocação de método numa classe Java.

Vamos a um exemplo, ao invés de chamar a funcionalidade contains

Você deve chamar assim:

Percebeu a diferença?

Preparamos um exemplo a seguir, que mostra o uso das taglibs que não possuem função correspondente na classe String.

Listagem 6 - Código JSP que define o idioma da página JSP para inglês americano.

Nesse exemplo, vemos o uso das tags substringAfter, substringBefore e contaisnIgnoreCase. Daqui a pouco, veremos um exemplo de join. Na linha 05, definimos uma variável tempStr usando a tag c:set. Na linha 06, pedimos que seja exibido o tamanho da String referenciada por essa variável. Nesse caso, a função length contará o número de caracteres dessa variável.

Na linha 07, será exibida uma String que é uma substring da variável tempStr a partir da palavra “Tags”. O resultado disso será “tem sintaxe diferente”. Já na linha 08, temos um exemplo similar. A diferença é que estamos interessados em exibir apenas a substring que vem antes da palavra “tem”, no caso “Functions e Tags”. Na linha 09, vemos o uso da funcionalidade containsIgnoreCase. Essa funcionalidade verifica se existe dentro de tempStr a substring “tags”, independente se ela está escrita como “TAGS”, “TaGs” etc. Nesse o caso, o resultado será true.

A tag join tem o comportamento de exibir os elementos de um array como String, onde cada elemento do array será convertido para texto, concatenando-os por meio de um separador indicado do tipo String. Veja o exemplo a seguir.

O nosso servlet de exemplo define um array de Strings como atributo da requisição:

Servlet de exemplo que seta atributo e redireciona chamada.

No arquivo exemplo.jsp, usamos o array definido no Servlet da Figura 13 (linha 15) como parâmetro para a função join (linha 4) , bem como o parâmetro adicional “,”.

Arquivo JSP que manipula array enviado pelo Servlet.

O resultado é que os elementos do array são exibidos separados por “,”.

Valores do array sendo impressos na tela.

Com esse último exemplo, terminamos nossa explicação sobre como usar as funções de JSTL. Agora, veremos EL, considerado um excelente recurso na construção de páginas JSP.

Versão 5.3 - Todos os Direitos reservados