|
www.flickr.com
Esse é um módulo do Flickr que mostra fotos e vÃÂdeos públicos de Rafael Carneiro. Faça seu próprio módulo aqui.
|
July 22, 2007
Continuando a série sobre criação de Tag files, vamos conhecer um excelente tópico da especificação JSP 2.0, os atributos dinâmicos das Tag files. No exemplo do post (Criando uma Tag File), foram criados diversos atributos na tag file de nome text. Mas dessa forma, cada vez que quizéssemos colocar um atributo novo nessa tag terÃamos que alterar o comportamento da mesma.
Com o dynamic-attributes da Tag File, os atributos podem ser escolhidos na codificação pelo programador.
Vamos aos códigos.
Tag File:

Na primeira linha temos a diretiva <%@tag, que informa algumas caracterÃsticas da tag, como codificação, se terá conteúdo e outras opções. É nela que se encontra a configuração para utilizarmos os atributos dinâmicos, o atributo chamado dynamic-attributes. Como valor eu coloquei dynattrs, mas você pode colocar qualquer valor. A função dessa tag é criar uma tag HTML input.
A chave principal é varrer o atributo dynattrs com um forEach da JSTL para obter os pares key/value para acrescentarmos no código HTML a ser gerado pela tag.
Após obtermos todos os atributos informados pelo programador na JSP, iremos colocá-los na tag HTML input através da variável atributos que foi preenchida pelo forEach.
JSP:
Quaisquer atributos que fazem parte da especificação HTML podem ser passados na JSP.
Resultado:

Note que desta forma temos uma Tag File visualmente melhor, mais fácil de dar manutenção e com mais vantagens sobre as tags que possuem atributos estáticos. Criamos uma tag genérica, ou seja, ela poderá ser um text, radio, hidden e etc.
Você pode ver nesse post como configurar as Tag Files (onde colocá-las, como chamá-las em JSPs…). Nesse exemplo você precisará das libs do JSTL.
Até a próxima.
June 11, 2007
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 File
<%@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.
