Clique aqui para ler esse artigo em PDF.
Jakarta Velocity
Acabe a briga com os designers
O uso de templates na camada de apresentação de aplicações web simplifica a manutenção
e a separação de responsabilidades.
Uma das áreas em que o desenvolvimento de aplicações web com Java mais encontra problemas é na separação entre a camada de controle, que faz as chamadas à lógica de negócio, e a camada de apresentação, onde é realizada a montagem da interface web.
Uma forma eficaz de fazer essa separação é usando sistemas de templates (template engines). O framework Jakarta Velocity do Grupo Apache é um dos mais populares desses sistemas, e pode ser usado tanto em aplicações web quanto locais.
Sistemas de templates
Pode-se fazer muito com um sistema de templates – desde a geração de simples arquivos-texto à criação de arquivos binários, tudo o que siga um determinado padrão de formatação. Pode-se gerar código-fonte de alguma linguagem, XML, HTML, documentos RTF e muitos outros. Por exemplo, o Poseidon for UML, ferramenta CASE desenvolvida em Java, usa o Velocity para a geração de código a partir de diagramas UML.
Usar templates tem uma série de vantagens: existe uma melhor designação de tarefas, pois os programadores ficam concentrados na lógica do sistema e os designers se preocupam apenas com o layout, o que reduz o risco de alterarem indevidamente o código da aplicação. Além disso, os templates ficam em arquivos separados, possibilitando mudar o visual da aplicação sem a necessidade de recompilar ou reiniciar o sistema.
Mas o que exatamente são templates? São arquivos com grande parte de sua estrutura e formatação pronta, contendo diretivas indicando valores a serem inseridos e ações a serem realizadas pelo sistema de templates. Com diretivas, é possível, por exemplo, mostrar o conteúdo de uma variável, navegar em listas e arrays, ou até mesmo invocar métodos de objetos.
Diretivas são a parte principal da Velocity Template Language (VTL) – veja mais sobre essa linguagem no quadro "Diretivas da VTL".
Funcionamento básico
Uma aplicação que usa o Velocity executa, basicamente, os seguintes passos: inicializa o sistema de templates, cria um contexto, adiciona objetos ao contexto, carrega um template e realiza o merge (veja a Figura 1). " [...] continue lendo...