Eclipse Krazo - Template Engines Suportadas

Daniel Dias
Jul 8, 2019 · 6 min read
Barista Duke — [DOAG](https://www.doag.org/de/home/)

Neste post veremos como podemos utilizar o Eclipse Krazo com outros templates engine fora o JSP e Facelets que são padrões .

Este também sera bem curto, pois é somente para conhecermos outros tipos de view engine para o Eclipse Krazo .

Atualmente Krazo suporta 12 view engines que são :

https://speakerdeck.com/danieldiasjava/tudo-o-que-voce-queria-saber-sobre-mvc-no-jakarta-ee-e-tinha-vergonha-de-perguntar?slide=19

No Krazo elas são EXTENSÕES fornecida para que tenhamos outras opções de exibirmos nossas informações em diferentes templates .

Bem vamos ver como utilizamos cada uma delas .


Asciidoc

O AsciiDoc é um formato de documento legível para humanos, semanticamente equivalente ao DocBook XML, mas usando convenções de marcação de texto simples.

Para Java existe uma lib chamada asciidoctorj .

AsciidoctorJ é a biblioteca oficial para executar o Asciidoctor na JVM.

Usando o AsciidoctorJ, você pode converter o conteúdo AsciiDoc ou analisar a estrutura de um documento AsciiDoc analisado a partir de Java e outras linguagens da JVM.

Para utilizarmos no Krazo bastaríamos adicionar a seguinte dependência em nosso maven e criar um arquivo com a extensão adoc ou asciidoc:

e o arquivo é da seguinte forma dentro da pasta views :

resultado.adoc

onde o {adoc} é o valor da model preenchida no nosso controller.

Freemarker

Freemarker é uma biblioteca Java para gerar saída de texto (páginas da Web em HTML, e-mails, arquivos de configuração, código-fonte, etc.) com base em modelos e alteração de dados.

Modelos são escritos no FreeMarker Template Language (FTL), que é uma linguagem simples e especializada (não uma linguagem de programação completa como o PHP).

podemos utiliza-la no Krazo com a seguinte dependência :

e o arquivo é da seguinte forma dentro da pasta views :

basicamente é um arquivo html bem simples .

Handlebars

Handlebars é uma implementação Java do Mustache. Você pode usar o Handlebars em qualquer ambiente Java, mas especialmente em aplicativos da Web que fazem uso pesado de JavaScript.

podemos utiliza-la no Krazo com a seguinte dependência :

e o arquivo é da seguinte forma dentro da pasta views :

esse template é bem simples, pois ainda utilizado o formato do html, o que mudar é a expressão de recebimento do valor {{variaveldoModel}} , podemos aprender mais aqui.

Jade

Jade é um template engine para Node.js e a sua sintaxe é facil de aprender. Como ele originalmente é para Node.js foi criado uma lib chamada jade4j.

A intenção do jade4j é poder processar modelos jade em Java sem a necessidade de um ambiente JavaScript, sendo totalmente compatível com a sintaxe jade original.

podemos utiliza-la no Krazo com a seguinte dependência :

e o arquivo é da seguinte forma dentro da pasta views :

o formato é um pouco similar a arquivos yaml para configurações , podemos aprender mais aqui.

Jetbrick

O Jetbrick é um template engine Java de última geração com alto desempenho e escalabilidade.

Adequado para saída de página HTML dinâmica ou geração de código, alternativa às páginas JSP ou modelos como Velocity.

As instruções são semelhantes às do Velocity e as expressões são consistentes com o Java, fáceis de aprender e usar.

podemos utiliza-la no Krazo com a seguinte dependência :

e o arquivo é da seguinte forma dentro da pasta views :

aqui também é bem sim o formato, mais uma vez é um html simples e similar ao JSP .

JSR 223

O Java Scripting API consiste em classes e interfaces do pacote javax.script.

É um pacote relativamente pequeno e simples, com a classe ScriptEngineManager como ponto de partida.

Um objeto ScriptEngineManager pode descobrir mecanismos de script por meio do mecanismo de descoberta de serviço de arquivo JAR e instanciar objetos ScriptEngine que interpretam scripts escritos em uma linguagem de script específica.

Nessa extensão podemos utilizar Jpython, JRuby, JS e Groovy .

podemos utiliza-la no Krazo com a seguinte dependência e adicionado a lib da linguagem, aqui no caso vamos usar o jPython :

e o arquivo é da seguinte forma dentro da pasta views :

Mustache

Mustache pode ser usado para HTML, arquivos de configuração, código-fonte qualquer coisa. Ele funciona expandindo tags em um modelo usando valores fornecidos em um hash ou objeto.

podemos utiliza-la no Krazo com a seguinte dependência:

e o arquivo é da seguinte forma dentro da pasta views :

a sua utilização é bem similar ao do Handlebars .

Pebble

Pebble é um template engine Java inspirado no Twig.

Possui herança de templates e sintaxe de fácil leitura, vem com built-in
auto escaping para segurança e inclui suporte integrado para internacionalização.

podemos utiliza-la no Krazo com a seguinte dependência:

e o arquivo é da seguinte forma dentro da pasta views :

StringTemplate

É um Template engine java (com portas para C #, Objective-C, JavaScript, Scala) para gerar código-fonte, páginas da Web, emails ou qualquer outra saída de texto formatada.

O StringTemplate é particularmente bom em geradores de código, em vários skins de sites e internacionalização / localização e também potencializa o ANTLR.

podemos utiliza-la no Krazo com a seguinte dependência:

e o arquivo é da seguinte forma dentro da pasta views :

podemos aprender mais a lidar com esse template engine em sua documentação .

Thymeleaf

É um Template engine Java XML / XHTML / HTML5 que pode funcionar tanto em ambientes web como fora da web.

É mais adequado para servir XHTML / HTML5 na camada de visualização de aplicativos da web baseados em MVC, mas pode processar qualquer arquivo XML mesmo em ambientes off-line. Muito utilizado com Spring MVC .

podemos utiliza-la no Krazo com a seguinte dependência:

e o arquivo é da seguinte forma dentro da pasta views :

Com thymeleaf podemos utilizar algo moderno em nossas aplicações MVC sem ficar dependendo de tecnologia com JSP que é bem antiga e quase ninguém gosta de utiliza-la .

Para aprender mais sobre esse templete veja a documentação .

Velocity

O Velocity é um template engine baseado em Java. Ele permite que qualquer pessoa use uma linguagem de modelo simples, mas poderosa, para fazer referência a objetos definidos no código Java.

Quando o Velocity é usado para desenvolvimento da Web, os Web designers podem trabalhar em paralelo com programadores Java para desenvolver sites de acordo com o modelo Model-View-Controller (MVC), o que significa que os designers da página podem se concentrar unicamente na criação de um site com boa aparência e os programadores podem se concentrar apenas em escrever códigos de alto nível.

O Velocity separa o código Java das páginas da Web, tornando o site mais fácil de manter durante a sua vida útil e fornecendo uma alternativa viável para JSPs (Java Server Pages) ou PHP.

podemos utiliza-la no Krazo com a seguinte dependência:

e o arquivo é da seguinte forma dentro da pasta views :

simples não ? bem similar a outros aqui demostrado, para aprender mais sobre velocity veja a sua documentação.

Jtwig

O Jtwig é um template engine moderno para Java. O mais configurável, extensível, fácil e poderoso.

podemos utiliza-la no Krazo com a seguinte dependência:

e o arquivo é da seguinte forma dentro da pasta views :

Mais uma vez, bem similar ao mustache , ou seja simples também . Podemos aprender mais aqui .

Bem isso é tudo .

Código-fonte :

REFERÊNCIAS

Daniel Dias

SouJava Board Member, JCP Member, JSR-354 (Money), JSR-371 (MVC 1.0), JSR-382 (Configuration 1.0) specifications contributors, Expert Group JSR-385 (UoM 2.0) and Eclipse Committer, is taking the first steps in contributing Open Source projects.

Daniel Dias

Written by

SouJava Board Member, JCP Member, JSR-371 (MVC 1.0), JSR-382 (Config) specifications contributor, EG JSR-385 (UoM) and Eclipse Committer .

Daniel Dias

SouJava Board Member, JCP Member, JSR-354 (Money), JSR-371 (MVC 1.0), JSR-382 (Configuration 1.0) specifications contributors, Expert Group JSR-385 (UoM 2.0) and Eclipse Committer, is taking the first steps in contributing Open Source projects.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade