Skip to content

Commit

Permalink
Adding a cookbook about tiles. Closes #481
Browse files Browse the repository at this point in the history
  • Loading branch information
garcia-jj committed Jun 21, 2014
1 parent e4b1e15 commit 7c991c7
Showing 1 changed file with 72 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
title: Integrando o VRaptor com Tiles 3
---

# por Otávio Garcia

Apache Tiles é um framework que implementa o design pattern Composite View. Com ele é possível você criar templates para sua aplicação de forma bem simples. Mais informações você encontra no <a href="http://tiles.apache.org">site do projeto</a>.

This comment has been minimized.

Copy link
@renanigt

renanigt Jun 21, 2014

Contributor

Mais informações você encontra

encontrará


O primeiro passo é incluir em seu projeto Maven o artefato abaixo. Se você não usa Maven, você pode ir no site do Tiles e baixar os arquivos manualmente.

~~~
#!xml
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-extras</artifactId>
<version>3.0.0</version> <!-- ou a última versão -->
</dependency>
~~~

E depois adicionar o listener que informa ao tiles que a aplicação está inicializada:

~~~
#!xml
<listener>
<listener-class>org.apache.tiles.extras.complete.CompleteAutoloadTilesListener</listener-class>
</listener>
~~~

E por último o servlet que irá responder as requisições do Tiles. No exemplo abaixo, qualquer requisição para a URL `*.tiles` será direcionada para os templates do Tiles.

This comment has been minimized.

Copy link
@renanigt

renanigt Jun 21, 2014

Contributor

às requisições


~~~
#!xml
<servlet>
<servlet-name>TilesDispatchServlet</servlet-name>
<servlet-class>org.apache.tiles.web.util.TilesDispatchServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TilesDispatchServlet</servlet-name>
<url-pattern>*.tiles</url-pattern>
</servlet-mapping>
~~~

Desta forma já temos o Tiles atendo as requisições.

Por padrão o VRaptor faz o forward para JSPs. Então precisaremos sobrescrever o comportamento da classe `DefaultPathResolver` para fazer o forward para o Tiles, usando o Servlet que criamos anteriormente.

~~~
#!java
@Specializes
public class TilesPathResolver extends DefaultPathResolver {

@Override
protected String getPrefix() {
return "/";
}

@Override
protected String getExtension() {
return "tiles";
}
}
~~~

Com isso, se você requisitar o método `ClienteController.formulario`, o VRaptor irá efetuar o forward para o template `cliente.formulario`. Basta então você criarmos o template para atender ao `forward`:

This comment has been minimized.

Copy link
@renanigt

renanigt Jun 21, 2014

Contributor

Basta então você criarmos

"Basta então criarmos" or "Basta então você criar".


~~~
#!xml
<definition name="cliente.formulario" template="/layouts/basic.jsp">
[...]
</definition>
~~~

0 comments on commit 7c991c7

Please sign in to comment.