Obsah
V této kapitole si poprvé představíme JSF. Nastíníme hlavní aspekty a výhody tohoto frameworku a napíšeme si první velice jednoduchou aplikaci. Na ní budeme demonstrovat základní možnosti JSF, které budeme podrobněji rozebírat v následujících kapitolách. Dále si čtenář udělá představu o součástech, ze kterých se JSF aplikace skládá a o základních krocích, které je třeba při jejím vývoji provést.
Základem JSF je technologie JavaServer Pages (JSP), ve které funguje systém knihoven tagů[7] a JSF obsahuje právě dvě takovéto knihovny (těmito knihovnami se budeme blíže zaobírat v následujících sekcích). Díky tagům z těchto knihoven může vývojář vkládat na stránku komponenty uživatelského rozhraní (UI komponenty).[8]
Dle [3] existují dva různé přístupy k tvorbě webových aplikací:
Rapid development, při kterém programátor využívá vizuální vývojové prostředí, jenž mu umožní uživatelské rozhraní "naklikat". Tzn. pouze rozmístit předpřipravené komponenty a doprogramovat jejich funkcionalitu. Příkladem může být ASP.NET od Microsoftu.
Hard-core coding, při kterém programátor píše velké množství kódu manuálně a uživatelské rozhraní se většinou taktéž složitě programuje. Zde bychom mohli jako příklad uvést Java EE platformu.
JSF framework se snaží především o usnadnění tvorby uživatelského rozhraní. Můžeme ho tedy chápat jako jakýsi Swing[9] pro webové aplikace na Java EE platformě. Při využití JSF vývojář umísťuje na stránku předpřipravené komponenty a mapuje je na příslušné třídy zajišťující funkcionalitu.
JSF se skládá ze dvou hlavních součástí:
API
[6] zastřešující komponenty uživatelského rozhraní.
Umožňuje správu těchto komponent, konverzi a validaci uživatelských vstupů
(konverzí a validací se budeme zabývat v sekci 5 – „Konverze a validace“),
zpracování událostí (zpracováním událostí se budeme zabývat v sekci 6 – „Zpracování událostí“), řízení navigace mezi stránkami (navigací mezi stránkami
se budeme zabývat v sekci 3.3.2.5 – „Namapování požadavků na instanci
FacesServlet
“) atd. Třídy zajišťující
tuto funkcionalitu lze samozřejmě v případě potřeby rozšířit.
JSP knihovny tagů [10] zajišťující přístup k JSF třídám z JSP stránky. Pomocí těchto tagů a jejich atributů umísťujeme UI komponenty na stránku a editujeme jejich chování. Např. je mapujeme na naše třídy, přiřazujeme jim validátory a listenery atp. (využitím UI komponent na stránce se budeme zabývat v sekci 4.3 – „Použití UI komponent na stránce“).
[7] Znalost technologie JSP a knihoven tagů je předpokladem pro četbu této práce. Pro více informací o těchto technologiích viz [8].
[8] UI komponentami se zde myslí klasické prvky uživatelského rozhraní, na které jste zvyklí z jiných aplikací. Jsou to např. tlačítka, textová pole, různé druhy zaškrtávacích políček (checkboxy, radiobuttony), různé druhy seznamů (listboxy, comboboxy) atd.
[9] Pri více informací o Swingu viz http://java.sun.com/docs/books/tutorial/uiswing.