quinta-feira, 27 de setembro de 2007

JSF + TILES2

Hmmmm mais uma sopa de letrinhas para misturar....
nesta postagem vou apresentar a maneira, mais simples que encontrei, de adicionar a funcionalidade TILES2 à uma aplicação JSF....
Para resumir este post, sugiro que leia meu post sobre a Criação Inicial de uma Aplicação JSF... usaremos ela como ponto de partida

Vamos começar baixando o TILES2 do site
http://tiles.apache.org/download.html

Para este post usarei a versão 2.0.4 do TILES2.

Pois bem, antes de mais nada, quero dizer que para integrar TILES2 + JSF vc NÃO precisa de nenhuma implementação de JSF externa (como MYFACES etc etc etc)....
Mas voltando ao assunto, do arquivo obtido utilizaremos apenas 3 JARs:

tiles-api-2.0.4.jar
tiles-core-2.0.4.jar
tiles-jsp-2.0.4.jar

Coloque-os na pasta lib de sua aplicação, mais ou menos como a imagem....


Estas bilbiotecas contém os TLDs e as classes necessárias para fazer nosso TILES2 funcionar....




Como disse anteriormente, a vida é fácil.... logo TILES2 tb deve ser hahahaha

vamos mexer no nosso web.xml?
Adicione as seguintes linhas ao seu WEB.XML


<!-- TILES PARAMS -->
<servlet>
<servlet-name>tiles</servlet-name>
<servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class>
<init-param>
<param-name>definitions-config</param-name>
<param-value>
/WEB-INF/tiles.xml
</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>Tiles Dispatch Servlet</servlet-name>
<servlet-class>org.apache.tiles.web.util.TilesDispatchServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Tiles Dispatch Servlet</servlet-name>
<url-pattern>*.tiles</url-pattern>
</servlet-mapping>

Muito bemmmmmmmm

agora seu tiles está configurado.... veja que estamos usando o arquivo /WEB-INF/tiles.xml como definition file.... entao vamos criar um tiles.xml de teste.... :)

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">

<tiles-definitions>
<definition
name="minhaIndex"
template="index.jsp" >
</definition>

<definition
name="minhaIndexTunada"
extends="minhaIndex" >
<put-attribute
name="body"
value="/body.jsp"></put-attribute>
</definition>

</tiles-definitions>

Ok... agora só brincar....
que tal começar pelo index.jsp?

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>


<f:view>

<f:subview id="index_body">
<tiles:insertAttribute name="body"/>
</f:subview>
</f:view>

e que tal criarmos nosso body.jsp?

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>

<f:subview id="body_jsp_bacana">

<h:outputText value="INDEX TUNADAAAA"></h:outputText>

</f:subview>>

PRONTOOOOOOOOOO

para acessar basta proceder da seguinte maneira

http://SEU_SERVIDOR:8080/NOME_DA_SUA_APLICACAO/app/minhaIndexTunada.tiles


valeuuuuuu

Um comentário:

Shenandoah disse...

Muito legal Bill. Abraço! Piva