brLayout - Gerenciador de Templates

E aí galera, blz?

Seguinte, acabei de incluir um projeto no SourceForge para gerenciamento de templates.

Tá sem documentação, porém ele funciona como o Tiles.

Ele funciona com qualquer controler, ou até mesmo servlet puro.
Estou usando aki no meu trabalho já faz uns dois meses e está bem estável.

Quem quiser dar uma olhada e testar segue o link abaixo:
Basta baixar o arquivo war e fazer o deploy.

Abraço galera!

geralemte o pessoal costuma distribuir os projetos como .zip, .tar.gz ou .tar.bz2 como forma de padronizacao.

só uma dica :wink:

Valeu a dica, já está lá o arquivo .zip

+brLayout-1.0.zip
- Jar
- Source
- war

Abraço

Qual a diferença desse projeto e do EasyTemplates?

Nao conhecia o EasyTemplate nao.
Mas pelo q vi a configuração das paginas no brLayout é mais simples.

Nao precisa de Classes Java, apenas configurado no XML
voce monta o seu template.

E também tem suporte a herança.

Segue abaixo um exemplo de configuração dos templates:
brlayout-defs.xml

[code]

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!-- DEFINING BASE MODEL -->
<model name="base" path="/templates/mainPage.jsp">
	<put name="title"	value="${title}" />
	<put name="head"	value="/templates/head.jsp" />
	<put name="body"	value="${body}" />
	<put name="menu"	value="/templates/menu.jsp" />
	<put name="footer"	value="/templates/footer.jsp" />
	<put name="link.desc"	value="${link.desc}" />
	<put name="link"	value="${link}" />
</model>

<!-- EXTENDING BASE MODEL FILLING VARIABLES -->
<model name="hello" extends="base">
	<put name="title"	value="hello.title" />
	<put name="body" value="/hello.jsp" />
	<put name="title"	value="hello.title" />
	<put name="link.desc"	value="hello.google.desc" />
	<put name="link"	value="hello.google.link" />
</model>

[/code]

Legal cara.
Quais são as vantagens dele em relação ao Tiles?

[quote=black_fire]Segue abaixo um exemplo de configuração dos templates:
brlayout-defs.xml

[code]

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!-- DEFINING BASE MODEL -->
<model name="base" path="/templates/mainPage.jsp">
	<put name="title"	value="${title}" />
	<put name="head"	value="/templates/head.jsp" />
	<put name="body"	value="${body}" />
	<put name="menu"	value="/templates/menu.jsp" />
	<put name="footer"	value="/templates/footer.jsp" />
	<put name="link.desc"	value="${link.desc}" />
	<put name="link"	value="${link}" />
</model>

<!-- EXTENDING BASE MODEL FILLING VARIABLES -->
<model name="hello" extends="base">
	<put name="title"	value="hello.title" />
	<put name="body" value="/hello.jsp" />
	<put name="title"	value="hello.title" />
	<put name="link.desc"	value="hello.google.desc" />
	<put name="link"	value="hello.google.link" />
</model>

[/code][/quote]

Nào tem um DTD ou um XML Schema? Como você valida o XML?

[quote=carneiro]Legal cara.
Quais são as vantagens dele em relação ao Tiles?[/quote]

Peguei o conceito basico do Tiles e fiz a implementação da mesma forma.
Mas paraticularmente, pra mim a maior vantagem é nao estar amarrado ao Struts, desta forma se vc precisa alterar o seu controler, o seu template de página não está amarrado a ele.

Verdade Daniel, vou criar o DTD! :?

Mas hoje eu carrego o xml para um bean e faço a validação dos atributos via java.

Vou ver se trabalho essa semana no DTD.
Valeu o toque!

Num é melhor ver se algum erro no mapeamento pro bean dá algum erro?

É exatamente o que está acontecendo hj.
Se houver erro de mapeamento, ele diz q houve um problema de configuração.

Se houver erro em uma tag específica, ele nao carrega o template com problema e carrega os outros.

Olá

Parabéns!

Não crie DTD. Aproveite a ocasião e estude Schema. Há 2 tutoriais muito bons em:
http://www.xfront.com/schematutorialchangehistory.html
e
http://www.w3schools.com/schema/default.asp

É um só pouquinho mais difícil escrever um schema. A vantagem de entender de schema é que fica muito mais fácil entender mensagens SOAP, WSDL e coisas que a cada dia entrem no nosso vocabulário.

[]s
Luca

É exatamente o que está acontecendo hj.
Se houver erro de mapeamento, ele diz q houve um problema de configuração.

Se houver erro em uma tag específica, ele nao carrega o template com problema e carrega os outros.[/quote]

Então, não tá baum?

Creio q sim, mas é legal seguir um padrão.

Quando eu estava estudando o código do Tiles, ele está fazendo o parse da mesma forma q eu fiz, porém por padrão existe um dtd, mesmo sem validação.

Vou dar uma olhada no schema pra ver como ele pode ajudar na configuração.

Abraço

O schema é a evolução do DTD

[quote=black_fire]Nao conhecia o EasyTemplate nao.
Mas pelo q vi a configuração das paginas no brLayout é mais simples.

Nao precisa de Classes Java, apenas configurado no XML
voce monta o seu template.

E também tem suporte a herança.[/quote]

Pode haver uma forte discussão se o fato de ser configurado via XML é realmente uma vantagem :slight_smile:
Não tem como criar uma ponte para configuração programática?

Configuração programática de Templates? Em HTML né?

Até porque ela é a linguagem na qual as páginas são escritas :wink:

Sobre a configuração, a melhor solução que eu vi até hoje foi o que os caras do Facelets fizeram, vale a pena uma conferida -&gt https://facelets.dev.java.net/

Outra coisa, o Tiles não depende do Struts, usei muito o Tiles com Spring MVC e ele sempre funcionou perfeitamente.

Uma dica…
Existem geradores automáticos de XSD e DTD.

Uma aplicação web que faz isto (minha opção)
http://www.hitsw.com/xml_utilites/

Um programa em C# (antigamente também era um serviço)
http://www.gotdotnet.com/team/xmltools/xsdinference/XSDInference.exe

A versão Mono
http://www.mono-project.com/XML_Schema_Inference

Olá

[quote=rodrigousp]http://www.gotdotnet.com/team/xmltools/xsdinference/XSDInference.exe
[/quote]

O XSDinference agora se baixa direto da Microsfoft como por coincidência hoje mesmo eu indiquei em http://www.guj.com.br/posts/list/42046.java#223656

Mas precisa tomar cuidado com os geradores automáticos como o infer pois eles não geram tudo como padrões (patterns) por exemplo.

[]s
Luca