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.