3.2. Hlavní výhody JSF

Na následujících řádcích se pokusím nastínit hlavní přínosy, jež vám JSF nabídne. Nebudu zde porovnávat JSF s jinými webovými frameworky pracujícími nad Javou,[10] nýbrž spíše upozorním na rozdíly ve vývoji Java EE aplikace s využitím frameworku JSF a bez něj.

Hlavní výhodou JSF je zautomatizování některých rutinních úkonů, které by samotným JSP šly řešit buď velmi těžko, nebo vůbec. Následuje výčet některých z rutin, jejichž vývoj JSF usnadňuje [8].

Každá komponenta uživatelského rozhraní je definována třídou, která determinuje její funkcionalitu, a tzv. rendererem, který určuje její výslednou podobu na výstupním zařízení. JSF tedy není vázáno na žádný značkovací jazyk. Výslednou podobou může být HTML, WML či jakýkoli jiný jazyk, podle toho, jak jsou naprogramovány renderovací třídy (pro více informací o renderování komponent viz 4.2 – „Renderování UI komponent“). Jelikož komponenty mohou mít více rendererů, může být jedna komponenta zobrazena jinak na monitoru a jinak třeba na mobilním telefonu. Základní implementace JSF převádí komponenty do HTML kódu.

JSF aplikuje architekturu Model-View-Controller (MVC), což ve zkratce znamená striktní oddělení stavu, prezentace a logiky.[11] Toho lze za použití čistého JSP dosáhnout pouze z části. V řešitelském týmu, jehož členové mají různé znalosti, se dá díky dodržování MVC architektury dosáhnout efektivnější dělby práce. JSF specifikace definuje pět rolí, které se při vývoji aplikace uplatní [5]. Pro nás jsou však důležité pouze tři z nich:

Počet vývojových rolí samozřejmě neříká nic o tom, kolik lidí na projektu pracuje. V jedné vývojové roli může vystupovat mnoho členů týmů a zároveň jedna osoba může zastávat více rolí. Dle [5] se například v případě rolí page author a application developer jedná většinou o stejnou osobu.



[10] Webových frameworků pracujících nad Javou je celá řada. Mezi ty populárnější patří např. Struts, Stripes, Tapestry, Wicket či Spring MVC. Jejich srovnáním se zabývá mnoho prací, např. prezentace Matta Raibla.

[11] Pro více informací o architektuře MVC viz např. [2].

Creative Commons License
Uvedená práce (dílo), jejímž autorem je Bc. David Hanel, podléhá licenci Creative Commons Uveďte autora-Neužívejte dílo komerčně-Zachovejte licenci 3.0 Česko.