Olá desenvolvedores, dando continuidade as diretivas em JSP – JavaServer Pages, hoje falaremos sobre a directiva include e taglib.  A diretiva include é usada para incluir arquivos externos durante a fase de conversão. A fase de conversão é a fase em que a página JSP é convertida no servlet equivalente.

DIRECTIVA INCLUDE

Entenda, podemos adicionar diretamente o JSP, mas temos que escrever o código em cada página JSP, observe este exemplo simples: suponha que temos 50 arquivos JSP e queremos adicionar um cabeçalho em cada arquivo. Neste caso, escrever o mesmo código em cada página JSP compreende um trabalho hercúleo. Então podemos simplesmente criar uma cor de cabeçalho para acessar o arquivo de cabeçalho e incluí-la em cada JSP.

Se não gostarmos da cor do cabeçalho, iremos para o arquivo de cabeçalho e simplesmente mudaremos a cor, ela será alterada em cada página JSP. Atente-se, o principal objetivo da diretiva include é a reutilização do código. Você pode codificar as diretivas de inclusão em qualquer lugar da sua página JSP.

<%@ include file = "relative url" >

O nome do arquivo na diretiva include é na verdade um URL relativo. Se você apenas especificar um nome de arquivo sem caminho associado, o compilador JSP assumirá que o arquivo está no mesmo diretório que seu JSP.

<jsp:directive.include file = "relative url" />

Vamos ver na prática como a diretiva include funciona, crie uma nova página .jsp na raiz do WebContent. Nesta nova página deixe apenas a tag <html>, e insira uma tag de título <h3>

<html><h3> Esta página está sendo inclusa</h3></html>

Agora iremos incluir esta diretiva na página principal index.jsp, onde informaremos a URL da página.

<%@include file="pagina-include.jsp"%>

O resultado da implementação da diretiva de inclusão com algumas estilizações, fica como exemplificado na imagem abaixo. Lembrando que podemos utilizá-la em todas as nossas páginas.

DIRECTIVA TAGLIB

A diretiva taglib é usada como uma biblioteca de tags na qual podemos definir muitas tags. O JSP nos permite definir tags personalizadas e, com a ajuda do descritor da biblioteca de tags (TLD), podemos definir nossas tags. Em outras palavras, a API JavaServer Pages permite definir tags JSP customizadas que se parecem com tags HTML ou XML. Dessa forma podemos entender que uma biblioteca de tags é um conjunto de tags definidas pelo usuário que implementam o comportamento personalizado

A diretiva taglib declara que sua página JSP usa um conjunto de tags customizadas, identifica o local da biblioteca e fornece meios para identificar as tags customizadas em sua página JSP. A diretiva taglib segue a sintaxe fornecida abaixo.

<%@ taglib uri="uri" prefix = "prefixOfTag" >

Para podermos utilizar a diretiva taglib vamos criar um package dentro de uma pasta src. No package implementaremos a classe TagCursoJsp que deverá ser estendida a classe simpleTagSupport. Veja abaixo como ficará a assinatura da classe.

public class TagCursoJsp extends SimpleTagSupport {}

E então sobrescreva o método doTag, que é o método responsável por fazer a tag ser executada. Assim, dentro do método sobrescrito, sobrescreva um novo método, o JspWriter, responsável por dar o retorno a página.

Na verdade, o método JspWriter recebe o getJspContext que retorna o contexto da página transmitido pelo contêiner viasetJspContext. Isto é, o getJspContext retorna o contexto da página para esta chamada. Ele invoca o getOut() responsável por retornar  o fluxo JspWriter atual sendo usado para resposta do cliente.

DESCRITOR DA BIBLIOTECA DE TAGS

O próximo passo é a criação do descritor da biblioteca de tags cuja extensão é .tld, com o qual podemos definir as tags. Para criar o arquivo, clique com o botão direito do mouse sobre a subpasta WEB-INF >> New >> Other >> busque por text >> selecione Untitled Text File.

Insira as linhas de código taglib abaixo e salve o arquivo com o nome testetag.tld e salve-o na subpasta WEB-INF, como exemplificado na imagem abaixo.

<taglib xmlns="http://java.sun.com/JSP/Page">
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>

<tag>
<name>minhatag</name>
<tag-class>tag.TagCursoJsp</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>

No código taglib entre as informações que são padrões do arquivo, inserimos o nome da nossa tag, a classe que criamos. E o body, que por estar sendo usado para teste será mantido vazio.

O passo seguinte é declarar essa taglib na página index.jsp. Observe que inserimos a declaração antes do <!DOCTYPE html>. A declaração traz o prefixo que iremos utilizar dentro da página JSP e o caminho do arquivo .tld.

<%@
taglib prefix="myprefix" uri="WEB-INF/testetag.tld"
%>  

Para chamar o arquivo dentro da estrutura do html informe o nome do prefixo: e o nome dado a taglib e atualize a página.

<myprefixo:minhatag>

EM POUCAS PALAVRAS

Então vimos um conceito muito útil com a diretiva de inclusão, que certamente vai atribuir agilidade ao seu desenvolvimento de sistemas em Java web. E vimos também o conceito de bibliotecas de tags personalizadas, os quais acredito, você não usará muito, entretanto, é importante conhecer. Eu fico por aqui, nos vemos no próximo tutorial.