FreeMarker
O que é FreeMarker?
O FreeMarker é um motor de templates baseado em Java que, através de templates pré-definidos, gera um arquivo de saída. Apesar de ser amplamente utilizado para desenvolvimento baseado no modelo MVC, através do uso de Servlets, também pode ser utilizado para processar qualquer tipo de texto: HTML, XML, Java, TXT, etc. Quando utilizado em frameworks MVC, o FreeMarker é responsável pela camada de visualização, substituindo o JSP, como são os casos, por exemplo, do WebWork, Spring e do Struts 2. O Struts 2 disponibiliza o FreeMarker como uma tecnologia alternativa para a representação da camada de visualização.
Embora muitos utilizem o FreeMarker como alternativa ao JSP, o seu principal objetivo é ser um simples e rápido framework de templates, o qual pode ser utilizado para automatizar a geração de determinado código. Um exemplo de aplicação que utiliza o FreeMarker com esta finalidade é o HibernateTools, ferramenta bem conhecida dos usuários do Hibernate.
Por padrão, os templates do FreeMarker possuem a extensão FTL (FreeMarker Template Language), porém, podem ser definidos com qualquer nomenclatura.
Apesar de o FreeMarker possuir uma sintaxe própria de codificação, ele não é uma linguagem completa de programação, ele apenas processa arquivos de texto com base em um modelo, conforme mostrado na figura abaixo.
Alguns editores utilizam o FreeMarker como linguagem de modelo para geração de artefatos, como o NetBeans IDE 6.0.
O FreeMarker possui uma lista de diretivas parecidas com o Velocity, apesar de a linguagem de templates do FreeMarker ser bem mais completa e com mais recursos. A tabela abaixo lista as principais diretivas utilizadas pela FTL.
Diretiva | Notação |
---|---|
#assign |
<#assign name=value><#assign name1=value1 name2=value2 ... nameN=valueN> <#assign same as above... in namespacehash> <#assign name> capture this </#assign> <#assign name in namespacehash> capture this </#assign> |
#if, #else, #elseif, #end |
<#if condition> ... <#elseif condition2> ... <#elseif condition3> ... <#else> ... </#if> |
#function |
<#function name param1 param2 ... paramN> ... <#return returnValue> ... </#function> |
#include |
<#include path> or <#include path options> |
#list |
<#list sequence as item> ... </#list> |
#macro |
<#macro name param1 param2 ... paramN> ... <#nested loopvar1, loopvar2, ..., loopvarN> ... <#return> ... </#macro> |
#attempt |
<#attempt>attempt block <#recover> recover block </#attempt> |
#stop |
<#stop> or <#stop reason> |
19 Replies to “FreeMarker”
viagra copyright buy generic viagra on line buying viagra in melbourne
pharmacy cheap best drugstore face moisturizer best drugstore blush
my canadian pharmacy usa pharmacy best drugstore foundation
arthritis canadian online pharmacies prescription drugs viagra from canada
generic cialis 20 mg cialis online shopping cialis with dapoxetine 80mg
Prednisone
Propecia
ivermectin tablets buy online
stromectol cost
Zithromax For Acne
Osu Acheter Du Kamagra
sildenafil 100mg
Minoxidil Propecia 1mg
plaquenil diarrhea
Propecia Con Receta Medica
easequesaurl cronadyn vs priligy
Udigti cialis online london Plaquenil Lasix may also be used for purposes not listed in this medication guide.
In subjects who are G6PD deficient, it is lowered by more than this in heterozygotes females, the fall may amount to about 50, whereas in hemizygotes males the fall is often much greater, and almost all may be lost finasteride generic In addition, patient informed consent was waived by Research Ethics Committee of Chi Mei Hospital
What’s up, this weekend is good in support of me, as this time i am
reading this enormous informative piece of writing
here at my residence.