[RESOLVIDO] Templates e fragmentos de paginas com VRAPTOR

Estou contextualizando com VRaptor, venho do JSF 2.0 e a parte de servidor está tranquilo.
A dúvida é sobre as views, no jsf eu criava um template onde continha o menu e parte superior e rodapé, além disso, um fragmento de pagina como por ex. anuncios eu criava um componente xhtml e utilizava ele como uma tag dentro das paginas xhtml.
Alguém pode me indicar qual a melhor alternativa atualmente nos dois casos para as JSP com o VRaptor? Eu vi algo sobre Tiles mas não sei se é a melhor alternativa…

além do Tiles você pode dar uma olhada no sitemesh, que é mais fácil de configurar e manter.

depende muito do nível de camadas que você pretende ter nos seus layouts.

Resolvi utilizar o tiles, segue configuração para uso com VRaptor ainda estou testando mas por enquanto ta funcionando.

web.xml adicionar:

<context-param> <param-name> org.apache.tiles.definition.DefinitionsFactory.DEFINITIONS_CONFIG </param-name> <param-value> /WEB-INF/tiles.xml </param-value> </context-param> <servlet> <servlet-name>TilesServlet</servlet-name> <servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class> <init-param> <param-name>org.apache.tiles.factory.TilesContainerFactory.MUTABLE</param-name> <param-value>true</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet>
em WEB-INF criar um arquivo tiles.xml fazendo as alterações dos path das JSP :

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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>
    <!-- DEFINICAO SIMPLES ->
    <definition name="homePage" template="/WEB-INF/jsp/tiles/template.jsp">
        <put-attribute name="header" value="/WEB-INF/jsp/tiles/defaultHeader.jsp" />
        <put-attribute name="menu" value="/WEB-INF/jsp/tiles/defaultMenu.jsp" />
        <put-attribute name="body" value="/WEB-INF/jsp/tiles/home_body.jsp" />
        <put-attribute name="footer" value="/WEB-INF/jsp/tiles/defaultFooter.jsp" />
    </definition>
    <!- END  -->
    <!-- DEFINICAO COM HERANCA -->
    <definition name="commonPage" template="/WEB-INF/jsp/tiles/template.jsp">
        <put-attribute name="header" value="/WEB-INF/jsp/tiles/defaultHeader.jsp" />
        <put-attribute name="menu" value="/WEB-INF/jsp/tiles/defaultMenu.jsp" />
        <put-attribute name="footer" value="/WEB-INF/jsp/tiles/defaultFooter.jsp" />
    </definition>
    <definition name="homePage" extends="commonPage">
        <put-attribute name="body" value="/WEB-INF/jsp/tiles/home_body.jsp" />
    </definition>
    <!-- END -->
</tiles-definitions>

PAGINAS JSP :
template.jsp

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<html>
    <body style="width:100%;height:100%">
        <table border="1" cellspacing="0" cellpadding="0" style="width:100%;height:100%">
            <tr>
                <td colspan="2">
                    <tiles:insertAttribute name="header" /></td>
            </tr>
            <tr>
                <td>
                    <tiles:insertAttribute name="menu" /></td>
                <td>
                    <tiles:insertAttribute name="body" /></td>
            </tr>
            <tr>
                <td colspan="2">
                    <tiles:insertAttribute name="footer" /></td>
            </tr>
        </table>
    </body>
</html>

defaultHeader.jsp:

<div>this is the default header</div>

defaultMenu.jsp:

<div>
<ul>
    <li>Menu item 1</li>
    <li>Menu item 2</li>
    <li>Menu item 3</li>
    <li>Menu item 4</li>
    <li>Menu item 5</li>
    <li>Menu item 6</li>
</ul>
</div>

defaultFooter.jsp:

<div>this is the default footer</div>

home_body.jsp:

<div id="header">
<h1>This is the home page's body</h1>
</div>

home.jsp:

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

fonte: http://richardbarabe.wordpress.com/2009/02/17/apache-tiles-2-a-brief-example/