Teprve nedávno jsem začal používat JSF a musím se přiznat, že se v tom pořád tak nějak plácám. Jsem zvyklý, že při programování mám vždy vše pod kontrolou, ale tady z toho takový pocit nemám. Ale toto téma si nechám až na nějaký další článek.
V tomto článku bych chtěl zmínit dvě knihovny, které mi celkem zpříjemnily mojí práci s JSF.
FacesTrace
Pokud nastane nějaký problém s JSF, tak někdy je dost těžké vůbec zjistit příčinu problému - skoro žádné logování, skoro žádné ladící informace. Tato knihovna v tomto ohledu aspoň trochu pomůže.Použití je velice jednoduché - přidá se knihovna k aplikaci a na stránce určené k ladění se použije tag <ft:trace />. Někdy je ještě nutné přidat mapování do web.xml.
Ukázku poskytnutých informací lze vidět zde.
MyFaces Orchestra
Při práci s JSF dost často nestačí ukládat proměnné jen do rozsahu requestu (pokud tedy chceme zachovat "rozumnou eleganci" vývoje s JSF). Potom musíme sáhnout po session, což není ideální, minimálně z pohledu nároků na paměť a škálovatelnosti (další důvody jsou uvedeny zde).MyFaces Orchestra nabízí něco mezi - konverzaci. MyFaces Orchestra vyžaduje přítomnost Springu, protože využívá možnosti Springu si definovat vlastní rozsah (scope) pro uložení beanů resp. JSF managed beanů. Je možné využívát dva typy konverzací:
- automatická - konverzace se automaticky vytvoří při přechodu na bean, který je definován pro rozsah konverzace. Při přechodu na bean s jiným rozsahem (request, session) se konverzace automaticky ukončuje.
- manuální - řízení začátku a konce konverzace je plně na programátorovi pomocí dostupného API.
Kromě toho knihovna ještě nabízí "persistence in conversation". Tedy něco jako "session in view", ale zde pouze v rozsahu konverzací.
Knihovna je nezávislá na implementaci JSF API, tedy funguje nejen nad Apache MyFaces, tak i nad Sun RI. Knihovny jsem zkoušel s JSF 1.1.
Pokud máte nějaké další tipy na knihovny, které pomohou s vývojem v JSF, tak sem s nimi prosím :).