Criando uma Biblioteca de Tags em Grails

Nesse artigo veremos como criar uma biblioteca de tags. Você verá como o Grails facilita muita essa tarefa de uma forma que as configurações passam despercebidas pelo desenvolvedor.

1. Introdução

Criar sua própria biblioteca de tags não é apenas uma questão de necessidade , esse item, bem elaborado, faz uma diferença e tanto na desenvolvimento da camada de visualização, pois deixam o código mais legível, organizam melhor as estruturas das páginas, abrem caminho para a reutilização de código através da componentização e proporcionam recursos indispensáveis na estrutura lógica e condicional de seu código html.

É pensando nisso que veremos, a seguir, como construir esse recurso essencial em uma aplicação web , além de mostrar como o Grails facilita a vida do desenvolvedor preservando-o dos detalhes de configuração, deixando focado apenas na funcionalidade da tag em questão.

2. O exemplo

Nosso exemplo será de uma tag que renderiza um input do tipo texto juntamente com a sua legenda. Trata-se de um exemplo bem simples mas que deixará o leitor apto a construir outras bibliotecas e tegs de sua preferência.

Então, mãos a obra! Primeiramente crie um novo projeto no Grails com o nome de TagLibProject e depois execute o seguinte comando no prompt do Grails para criar a biblioteca:

grails create-tag-lib com.mytags.Extra

Depois que você executar o comando o Grails automaticamente criará um classe ExtraTagLib no diretório taglib dentro do pacote com.mytags.

Pronto, nossa biblioteca de tags foi criada agora precisamos incluir a nossa tag labelField que será feito implementando um método com o mesmo nome da tag.

package com.mytags class LabelFieldTagLib { def labelField = { attr -> out << "<div>${attr.label}</div> <div> <input type='text' value='${attr.value}'/> </div>" } }

Observe que o argumento attr armazena os parâmetros da tag que no nosso caso será o label e o value.

Agora vamos testar a nosso exemplo. Para isso crie um controlador com o camando create-controller TesteTag, em seguida configure de acordo com o código a seguir:

class TesteTagController { def index = { return ['nome':'Raimundo Botelho'] } }

Por convenção o Grails também criou uma página index.gsp no diretório view/testeTag que se relaciona com a ação index do controlador. Acrescente o seguinte código nessa página :

<html> <head> <title>Teste Tag</title> </head> <body> <g:labelField label="Nome" value="$" /> </body> </html>

Pronto, agora é só testar nosso exemplo acessando o link http://localhost:8080/TagLibProject/testeTag/index


Figura 1. Testando exemplo.

3. Conclusão

Como podemos perceber no exemplo, o Grails simplifica muito a construção de bibliotecas de tags, tarefa essa que em outros ambientes são realizadas de forma muito complexa, pois a maioria do processo envolve configurações em arquivos descritores e a lógica de implementação é o mínimo que se faz. Com o Grails essas configurações ficam transparente para o desenvolvedor que se preocupa apenas com a lógica que envolve a funcionalidade da tag em questão.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados