dagblog.
← Archiv

Tiles — opravdu chytré šablony pro JSP


Při tvorbě uživatelského rozhraní webových aplikací jsou vývojáři konfrontování
 s oddělením aplikační a prezentační logiky. Samotné oddělení prezentační a 
 aplikační logiky je téma tak otřískané, že se jím nebudu v tomto článku zabývat.

Druhým neméně závažným problémem při tvorbě GUI
 je oddělení vlastního obsahu od jeho uspořádání. Předesílám, že nemám na mysli, prezentační 
 vlastnosti, které nám umožňuje separovat CSS.

Dříve nebo později nastane situace, kdy bude rozvržení stránky tzv. layout nutné
 změnit. V produkčním nasazení to bývá nejčastěji při specifických požadavcích 
 zákazníka např. na začlenění webové aplikace do portálu či intra/extra netu. V takových 
 případech musíme pohlídnout pravdě do očí a layout změnit.

Ono se to řekne změnit layout, ale představme si co to všechno obnáší? Kromě problémů
 ryze technických jako paralelního udržování několika verzí GUI,
 to přináší i přepsání velkého množství prezentačního kódu. Tyto problémy jsou způsobeny mícháním
 vlastního obsahu s jeho rozvržením, který je tolik typický pro webové aplikace.

Řešení těchto problému je založeno právě na striktním oddělení obsahu 
 a jeho rozvržení, kterého je dosaženo pomocí mechanismu šablon. 
 Co je to vlastně ta šablona? Šablona není nic prostšího než struktura, kterou
 lze opsat.

V šabloně definujeme vlastní strukturu, kterou může například
 tvořit rozvržení jednotlivých komponent stránky tedy ovládací prvky, záhlaví,
 datová část, navigace atd. Šablonu, kterou máme připravenu, všechny stránky 
 opíšou a přidají vlastní obsah např. seznam objednávek.

Pomocí šablon není problém rozebrat a seskládat stránku na atomické části a 
 umožnit změnu rozvržení na jednom místě. Jednotlivé atomické části jsou pak 
 znovupoužitelné v rámci aplikace či aplikací a snižují redundanci kódu.

Když jsem přemýšlel o tomto článku, tak mě intuice vedla k šablonovacímu systému
 SMARTY, který popisuje Štěpán Kouba
 v seriálu SMARTY — chytré šablony pro PHP 
 na serveru Interval.cz.

S odstupem času nejsou SMARTY tím pravým zástupcem šablonovacího systému 
 neboť se snaží spíše o oddělení aplikační a prezentační logiky, což je 
 sice základní premisa, ale není to co by nám umožňovalo oddělit rozvržení
 od obsahu.

Měrou vrchovatou mé očekávání naplnily až Tiles
 patřící pod MVC framework Struts. 
 “Dlaždice” nabízejí mnohem více možností než jsem popsal, samozřejmá je podpora 
 internacionalizace, definice šablony v XML atd. Pokud hledáte šablonovací systém
 pro JSP tak by Tiles mohly být tou pravou volbou a pokud váháte tak doporučují 
 přečíst sérii článků Chucka Cavanesse 
Programming Jakarta Struts: Using Tiles, Part 1.

Verze na Medium

Související články

Související epizody CZ Podcastu