Conceitos: Tag de Personalização JSP (Java Server Page)
Tópicos
Introdução
As tags de personalização são um mecanismo para estender a API JSP. Elas ativam as extensões declarativas de páginas JSP.
As tags JSP são implementada em Java, mas são ativadas na JSP por meio de tags semelhantes a tags HTML. Ao contrário das tags HTML entretanto, as tags JSP são processadas pelo servidor,
não pelo navegador do cliente.
As tags de personalização fornecem uma separação clara de responsabilidades entre os designers
da Web (desenvolvedores de JSP) e os programadores Java. Os programadores Java implementam
as tags de personalização JSP. Os designers da Web selecionam essas tags declarativamente para ativar
a implementação Java.
O designer da JSP "chama" o código Java declarando tags e o
desenvolvedor Java desenvolve código em rotinas de tratamento de tag, conforme mostrado no diagrama a seguir.

Para fornecer uma tag de personalização, o desenvolvedor Java precisa fornecer duas coisas:
Rotina de Tratamento de Tag
Uma rotina de tratamento de tag é uma classe que implementa a interface Tag. Duas classes de bibliotecas facilitam o fornecimento de rotinas de tratamento de tag. São elas:
javax.servlet.jsp.TagSupport e javax.servlet.jsp.BodyTagSupport. A classe TagSupport é utilizada para tags que não possuem corpo;
BodyTagSupport é utilizada para tags que possuem corpo.
A seguir, um exemplo da mais simples implementação de rotina de tratamento de tag possível.

Descritor de Biblioteca de Tag
Para que uma JSP possa utilizar tags de personalização JSP, é necessário criar um descritor de biblioteca de tag.
Um descritor de biblioteca de tag é um arquivo XML implementado no servidor da Web juntamente com as rotinas de tratamento de tag.
A seguir, um arquivo de biblioteca de tag simples contendo o descritor de biblioteca de tag HelloWorld.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLScheme-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>simp</short-name>
<uri> http://www.inferdata.com/taglib/hello-world</uri>
<description>Exemplo simples de uma tag de personalização JSP</description>
<tag>
<name>hello</name>
<tag-class>com.inferdata.taglib.HelloWorld</tag-class>
<body-content>empty</body-content>
<description>Tag simples de hello world</description>
</tag>
</taglib>
|