<#FREEMARKER>

Co to je?

  • šablonovací systém

model

Šablona

text

výraz k vyhodnocení

řídící příkazi FTL

komentář

Šablona

  • výrazy uvnitř ${} jsou automaticky nahrazeny aktuální hodnotou
  • pomocí # můžeme používat freemarker funkce např.<#if><#else></#if>, <#macro>
  • pomocí @ můžeme volat vlastní funkce

Freemarker model

  • data která posíláme do šablony aby se vyhodnotila
  • pokud posíláme java object musí mít gettery na property ke kterým chceme přistupovat
  • k property přistupujeme přes tečkovou notaci

Freemarker funkce

If

Freemarker funkce

list

Freemarker funkce

sep

  • Vykoná se pouze pokud existuje další výskyt

Freemarker funkce

include

  • Umožní vložit kód do šablony

Freemarker funkce

vestavěné

  • Používají se pro upravu chování vyhodnocení promměných z modelu
  • píší se za ? a lze je řetězit (${value?method?method})
     
  • user?upper_case - převede na velká písmena
  • user?length - vypíše délku textu
  • animals?size - vypíše velikost pole
  • animal?index - vrátí pozici v poli (start 0)
  • animals?join(", ") - spojí obsah pole zadaným stringem
  • user?start_with("J") - otestuje zda text začíná zadaným textem

Freemarker funkce

test existence proměnných

  • ${user!"N/A"} - pokud user neexistuje vypíše N/A
  • <#if user??>....</#if> - pokud user existuje splní se podmínka

Freemarker proměnné

  • 'plain' proměnné - jsou přístupné v celé template
    definují se <#assign x = 1>
  • lokální proměnné - uvnitř maker
    definují se <#local x = 1>
  • proměnné cyklu - proměnná žije jen v rámci daného cyklu
    <#list list as x>
  • globální - dostupné pro všechny šablony. Moc se nepoužívá
    definuje se pomocí <#global x=1>

Freemarker makra

  • <#macro> - umožňuje nám definovat vlastní directivy

Freemarker makra

<#nested>

  • <#nested> - umožňuje nám v makru přistoupit k obsahu který se nachází mezi tagy

Freemarker makra

<#return>

  • <#return> - umožňuje ukončit makro

Freemarker

By Jiří Čížek

Freemarker

  • 318