sexta-feira, 7 de setembro de 2007

Tapestry :: O básico 1

Estou faz alguns dias - ok, alguns meses -trabalhando com o Tapestry 4.1 e notei que não existem muitos tutoriais desse framework em português. Decidi então colocar algumas coisas nesse blog pra dar uma turbinada na comunidade tap brasuca.


Começo então dando uma introdução sobre como o Tapestry funfa e depois eu vou entrar em detalhes mais práticos (tutoriais propriamente dito). Tanto por que estou com preguiça de abrir o eclipse e talz (feriado, uhu!). :D


O Tapestry é um framework web feito em Java que faz uso extenso de reflection. É um framework focado em componentes - tão focado que até as páginas são componentes. De forma resumida, um componente é constituído por uma classe Java, um arquivo descritor XML e um arquivo HTML. Em determinadas ocasiões cada um desses elementos pode ser omitido (o comportamento do framework em cada caso é específico e eu devo entrar em mais detalhes em um artigo futuro; isso se eu continuar essa série).


Outra característica chave do Tapestry é o uso extensivo de expressões OGNL (Object-Graph Navigation Language). Essa linguagem permite embutir expressões complexas dentro de seu código HTML.


Uma aplicação Tapestry interage com um container web convencional (como o Apache Tomcat) por meio de um servlet(org.apache.tapestry.ApplicationServlet). Esse servlet é responsável por interpretar a chamada HTTP e transferir para um serviço hivemind apropriado (normalmente o serviço Page).


Bom, estou entrando em muita complicação para o que interessa agora; o importante é saber que, assim como um endereço HTTP pode representar uma página, ele também pode representar uma classe Java arbitrária que pode implementar, por exemplo, um repositório de imagens geradas automaticamente.


O serviço de páginas é responsável por criar cache e fazer chamada para as páginas corretas (a localização das mesmas será descrita em um outro post). Cada página tem sua gerência de estado própria e acesso aos objetos compartilhados de sessão.


Enfatizo objetos aqui pois o Tapestry toma conta de converter tipos dinamicamente conforme necessário. Embora isso torne as coisas um pouco nebulosas no começo, sem dúvida facilita no futuro. Em um artigo mais adiante eu pretendo explicar como implementar tais conversores de tipo.


Bom, por hora é só.



2 comentários:

kalistek disse...

sabia q vc ia gostar de java! ada nunca mais né? ;)

agora falando sério: essa série de posts vai ser show. manda bala! eu sempre quis saber como as coisas em java funcionam pra web.

kalistek disse...

cadê o resto?