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.
Související články
Související epizody CZ Podcastu
- #217 · Ivo Lukačovič
O Windy, JavaScriptu a budování firem.
- #3 · Java 6 SE, Vývoj webových aplikací
Dagi a Filemon o novinkách v Javě 6 a webových frameworcích.
- #1 · Vývojová prostředí v Javě
První díl CZ Podcastu se věnuje vývojovým prostředím pro Javu.