Implemantação da Classe de Tag
Para desenvolver uma tag personalizada em JSP, crie uma classe Java que estenda SimpleTagSupport e sobrescreva o método doTag(). Este método controla o que a tag irá gerar na página.
package com.exemplo;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public class TagMensagem extends SimpleTagSupport {
@Override
public void doTag() throws JspException, IOException {
getJspContext().getOut().write("Bem-vindo ao sistema!");
}
}
Criação do Arquivo TLD
Defina um arquivo de descrição de biblioteca de tags (TLD) em um local como /WEB-INF/ ou um subdiretório. Este arquivo mapeia a tag para sua classe de implementação.
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>exemplos</short-name>
<uri>/bibliotecamensagem</uri>
<tag>
<name>msg</name>
<tag-class>com.exemplo.TagMensagem</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
O atributo uri identifica de forma exclusiva a biblioteca, enquanto short-name é usado como prefixo nas páginas JSP. O elemento name define o nome da tag, e tag-class aponta para a classe Java correspondente.
Utilização na Página JSP
Declare a biblioteca de tags com a diretiva taglib e invoque a tag usendo o prefixo e o nome definidos.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="/bibliotecamensagem" prefix="app"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Exemplo de Tag Personalizada</title>
</head>
<body>
<app:msg/>
</body>
</html>
Configuração no web.xml (Se Necessário)
Se o arquivo TLD não estiver no classpath padrão, como em /WEB-INF/tags/, adicione um mapeamento no web.xml para associar a URI à localização do arquivo.
<jsp-config>
<taglib>
<taglib-uri>/bibliotecamensagem</taglib-uri>
<taglib-location>/WEB-INF/tags/mensagem.tld</taglib-location>
</tag>
</jsp-config>
Ao executar a aplicação, a tag <app:msg/> será processada pelo contêiner JSP, que chamará o método doTag() da classe TagMensagem para gerar a saída na página.