Struts em Pedaços: Reutilize Design em JSPs usando o Tiles

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Este artigo foca na utilização prática do Tiles, o mecanismo de templates do Struts, que torna possível reutilizar layouts de páginas de forma estruturada.

Esse artigo faz parte da revista Java Magazine edição 19. Clique aqui para ler todos os artigos desta edição

jm19_capa.gif 

Struts em Pedaços

Reutilize Design em JSPs usando o Tiles

O Tiles permite criar templates para aplicações Struts, simplificando a tarefa de dar cara nova ao seu site

Um problema comum no desenvolvimento de aplicações web extensas é a dificuldade no reaproveitamento de layouts e soluções gerais de design gráfico. Em aplicações corporativas, há geralmente muitas JSPs com partes em comum, o que gera muito código repetitivo e dificulta mesmo pequenas mudanças. Este artigo foca na utilização prática do Tiles, o mecanismo de templates do Struts, que torna possível reutilizar layouts de páginas de forma estruturada.

Mudanças de layouts

É fácil perceber alguns exemplos de layouts em aplicações web. A Figura 1 mostra dois modelos típicos, contendo elementos comuns, como menu e rodapé. Agora imagine que seu cliente queira modificar o layout básico da aplicação do primeiro para o segundo modelo; quantas páginas você teria que alterar em um projeto grande! Isso se você não estiver usando um mecanismo de templates, como Velocity, FreeMarker, SiteMesh, WebMacro – ou o Tiles.

O Tiles vem integrado e é fácil de usar com o Struts, ficando acessível através de uma taglib embutida. Sites baseados no Tiles são montados com peças, ou "ladrilhos". Assim, você pode modelar uma vez e replicar o layout em todo um grupo de páginas (ou mesmo em todas as páginas) de uma aplicação web.

Vamos desenvolver uma pequena aplicação utilizando o Tiles. Você pode usar qualquer IDE ou editor. Para facilitar, o download do artigo disponível no site da Java Magazine inclui um buildfile do Ant que automatiza o processo de construção e instalação do exemplo. Ao final, teremos criado a estrutura de diretórios na Figura 2.

Página de modelo

O primeiro passo é criar uma página (padrao.jsp) que servirá de base para o layout das outras páginas da aplicação. Definimos a estrutura usando tabelas HTML (também poderíamos ter usado layers). O objetivo é o primeiro layout da Figura 1, portanto vamos criar as "porções" topo, menu, rodape e conteudo. Observe a página base na Listagem 1. No começo, vemos a declaração da tag library do Tiles:

 

<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

 

Em seguida, declaramos as porções dentro do código HTML usando a taglib tiles: <tiles:get name="topo"/>, <tiles:get name="menu"/> etc. Na execução da página, estas tags serão substituídas pelas páginas informadas no arquivo de definição tiles-defs.xml.

O arquivo de definição

O arquivo tiles-defs.xml contém a especificação das definições do Tiles e a parte principal do mecanismo e maior responsável pela flexibilidade na manutenção dos layouts. No tiles-defs, você poderia por exemplo, criar uma definição "index" para as páginas iniciais de cada seção do site, "cadastro" para páginas de entrada de dados, "relatorio" para listagens, e assim por diante.

Veja o arquivo de definições para nosso exemplo na Listagem 2. Dentro do elemento <definition>, a propriedade name do elemento <put> identifica a porção; value informa a página a ser substituída. Por exemplo, definindo-se <put name=”topo” value=”topo.jsp”>, o tag <tiles:get name="topo"/> no JSP será substituído pela página topo.jsp.

Indo além, você pode usando herança para criar definições filhas, que redefinem apenas algumas porções, reaproveitando o layout de uma definição base. Veja na Listagem 3 a herança em ação. Observe que para a definição jm.naoEncontrado foi necessário apenas alterar a porção conteudo. Já na definição de jm.cadastros.usuarios, foi alterado também menu, que recebeu comandos de um cadastro típico.

Ajustes no struts-config

O próximo passo é alterar o arquivo de configuração do Struts. Primeiro, precisamos configurar o plug-in do Tiles:

 

<plug-in className="org.apache.struts.tiles.TilesPlugin">

   <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />

</plug-in>

"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?