O EasyTemplates é um framework bastante compacto, de modo que a curva de aprendizado é extremamente pequena. Não pretendemos fazer um tutorial sobre JSP/Servlets, portanto, presumimos que você já tenha conhecimento nessas tecnologias.

Antes de tudo, é necessário criar uma classe que estenda TemplateManager. É nessa classe que faremos a configuração, e é esta classe que será consultada para montar dinamicamente as páginas. Veja que, por ser uma classe Java, há grande flexibilidade na configuração. Você pode criar valores default, isolar cada módulo do seu site em um método ou classe diferente, etc.

public class TemplateManager extends
        br.org.codigolivre.easytemplates.TemplateManager {

    Page page;

    public void configurePages() {
        //Página base
        Page base = new Page("template.jsp");
        base.setBlock("topo", new Page("topo.jsp"));
        base.setBlock("menu", new Page("menu.jsp"));
       
        page = new Page("/listNews", base);
//Herança!
       
page.setStringBlock("title", "Inclusão de notícias");
        page.setBlock("corpo", new Page("listNews.jsp"));

        add(page);

       
page = new Page("/addPool", base);
        page.setStringBlock("title", "Inclusão de enquete");
        page.setBlock("corpo", new Page("addPool.jsp"));
        page.setBlock("menu", new Page("menu2.jsp"));
//Redefinição!
        add(page);      
    }
}

O EasyTemplates tem como personagem central um Servlet, que, baseado na requisição, consulta o TemplateManager e monta a página. Temos uma classe abstrata TemplateServlet e uma implementação default chamada JspTemplateServlet. Portanto, no web.xml, devemos registrar o nosso Servlet e o nosso TemplateManager.

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <!-- ================================================================== -->
    <!-- Configurações do EasyTemplates                                     -->
    <!-- ================================================================== -->
    <servlet>
        <servlet-name>TemplateServlet</servlet-name>
        <servlet-class>
            br.org.codigolivre.easytemplates.JspTemplateServlet
        </servlet-class>
        <init-param>
            <param-name>TemplateManager</param-name>
            <param-value>pacote.TemplateManager</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>TemplateServlet</servlet-name>
        <url-pattern>*.page</url-pattern>
    </servlet-mapping>
   
</web-app>


Veja que adicionamos um parâmetro, cuja chave sempre deve ser TemplateManager, e cujo valor é a classe do TemplateManager, incluindo o pacote. Note também que mapeamos o nosso servlet para *.page (qualquer extensão pode ser usada, mas essa é a nossa convenção), ou seja, nossas páginas devem agora ser referenciadas com essa extensão.

Dê uma olhada no TemplateManager. Ele configura um /listNews. Assim, sempre que chamarmos /listNews.page, o TemplateServlet vai consultar o TemplateManager, e montar a página dinamicamente.

Agora, vejamos o nosso template.jsp

<%@taglib uri="http://br.org.codigolivre.easytemplates" prefix="template"%>
<html>
  <head>
    <title><template:stringBlock id="title"/></title>
  </head>
  <body>
    <table>
      <tr><td colspan="2">
<template:block id="topo"/></td></tr>
      <tr>
        <td width="25%">
<template:block id="menu"/></td>
       
<td><template:block id="corpo"/></td>
      </tr>
    </table>
  </body>
</html>

Olha que beleza. Agora é só criarmos as demais páginas (listNews.jsp, addPool.jsp, topo.jsp, menu.jsp, menu2.jsp) e sair usando o EasyTemplates.

Observe as grandes flexibilidades trazidas pelo nosso framework. Veja que colocamos o menu à esquerda, e o corpo à direita. Agora, imagine que o nosso cliente nos ligue e fale: "O menu da esquerda tá muito feio. Eu quero que ele fique na direita.". O que fazer? Simples, edite o template.jsp e pronto! Você arruma isso em, digamos, 3 segundos.

Veja também que você pode importar os estilos CSS e bibliotecas javascript comuns direto do template.jsp. Assim, você não precisa ficar importanto essas coisas em todas as páginas.

Como já dissemos na página de introdução, o EasyTemplates é compatível com a grande maioria (para não dizer todos) dos frameworks web Java. Visto que ele se baseia em um Servlet, basta dar um forward ou redirect para este servlet é pronto.

O EasyTemplates possui mais recursos, como suporte a Controllers, e convenções. Não deixe de dar uma olhada nos outros itens do menu.