A Tag File faz parte da especificação JSP 2.0 e muita gente não sabe quais os benefícios que ela traz no desenvolvimento de aplicações para a web. Uma Tag File nada mais é do que um pequeno código de arquivo JSP. A sua função é justamente criar pequenos fragmentos de códigos para um determinado fim. Ela ajuda na orgazinação e design da sua aplicação, retirando uma fatia de códigos comuns e repetitivos das suas páginas JSPs. Suporta EL, JSTL e quaisquer tag libs, incluindo tags de frameworks, como por exemplo as tags do Struts.
No exemplo utilizei apenas JSTL. No final do post você encontrará o caminho para baixar o jar.
Onde colocar as tag files
A especificação determina que as tags sejam criadas em um .jar no diretório META-INF/tags. Para essa configuração é necessário criar arquivos tlds que contêm a configuração necessária para o funcionamento das tags.
Para ser mais fácil e rápido, no exemplo iremos colocar a tag file no diretório WEB-INF/tags, com isso não precisamos ficar gerando o jar a cada alteração na tag.
Principais tags
- tag
Tag inicial que informa qual o encoding da tag file. Seu principal atributo é o pageEncoding.
- attribute
Essa tag é encarregada de informar para o desenvolvedor quais os atributos que a tag file disponilizida. Seus principais atributos são:
type: define um tipo (Object, String, Boolean, Integer e etc)
required: informa se o atributo é obrigatório
rtexprvalue: informa se o valor do atributo pode ser uma expressão JSP. Ela deve ser processada antes de ser enviada para a tag.
Codificando
<%@tag pageEncoding="UTF-8"%>
<%-- Importando a JSTL --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%-- Atributos --%>
<%@attribute name="tipoInput" type="java.lang.Boolean"%>
<%@attribute name="tituloCampo"%>
<%@attribute name="id"%>
<%@attribute name="name"%>
<%-- Tags condicionais da JSTL --%>
<c:choose>
<c:when test="${tipoInput}">
${tituloCampo} <input type="text" name="${name}" id="${id}">
</ when>
<c:otherwise>
${tituloCampo} <input type="password" name="${name}" id="${id}">
</ otherwise>
</ choose>
JSP
<%@taglib prefix="tag" tagdir="/WEB-INF/tags" %>
<html>
<head>
<title>Exemplo Tag File</ title>
<head>
<body>
<tag:text tituloCampo="Campo" id="text" name="text" />
</ body>
</ html>
Considerações Finais
Ao executar esses códigos numa aplicação web o resultado será a renderização de um campo na tela do tipo input text ou password, dependendo da opção que você escolher.
O valor default de um objeto do tipo Boolean é null, então para podermos mostrar na tela um input do tipo text precisaremos passar o valor true no atributo tipoInput na JSP.
Note que não precisei configurar o Deployment Descriptor (web.xml) e nem criar um arquivo de configuração de tag libs (.tld).
Portanto, a utilização de tag files traz grandes benefícios para o desenvolvedor e para quem precisar refatorar ou modificar os códigos das JSPs da aplicação no futuro, por diminuir a quantidade de códigos repetidos e trazer simplicidade e dinamismo.
Nenhum comentário:
Postar um comentário