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.