DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

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.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

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="${nome}" />
  </body>
</html>

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

Testando exemplo

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.


Raimundo Botelho
Meu nome é Raimundo Botelho, sou bacharel em Ciência da Computação formado pelo Centro Universitário do Pará (CESUPA) e programador certificado Java pela Sun Microsystems. Moro em Belém e atualmente trabalho como Arquiteto de Software na BB Tecnologia e Serviços. Minhas especialidades são: Projeto,...
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03