Duben 4th, 2007JSF & Facelets
Samotné JavaServer Faces (JSF) je ve své podstatě jednoduchý framework na view vrstvu, který komunikuje pomocí Backing Beans. JSF v žádném případě neruší metodiky JSP-Servletů, pouze je potlačuje ve prospěch vývojářů a snaží se nabídnout alternativu pomocí JSF.
V JSF je několik vlastností (zejména uvnitř faces-config.xml), které jistě stojí za to prozkoumat:- Navigace
- Lokalizace a vlastní definice messages
- Definice managed-beans (request, session) …
- Psaní HTML komponent v pomocí jsf/html
- Tvorba vlastních UI komponent
Pro vývojáře, kteří mají s podobnými typy frameworků již zkušenosti, jistě není problém se JSF doučit. Ve chvíli, kdy je pro Vás jsp-servlet nový pojem, doporučuji rovnou začít na JSF. Samotná metodika Vás nakonec stejně donutí se jsp-servlety částečně doučit.
Když to vezmu do důsledků, tak jako vývojář v PHP jsem měl
k jakýmkoliv frameworkům odpor. Ne snad z toho důvodu, že bych si raději
všechno psal sám, ale z toho důvodu, že jsem nikdy nevěřil, že ten či
onen framework bude i nadále podporován a že mi poskytne komplexní
řešení.
U JSF je situace jiná. Samotný framework (stejně jako např. JavaPersistence
API), je standardem SUNu, což samo o sobě dává pocit jakési jistoty, že
se samotné API neučím nadarmo. Mám jistou záruku, že bude více
využíván, dále podporován, či na něm budou postaveny další
implementace, které se budou snažit dodržet standard a k tomu použiji své
vlastní rozšíření.
Takovouto podobnost mohu nalézt např. mezi JPA a Hibernate, kde Hibernate se
stalo plně kompatibilní s JPA a navíc nabízí vlastní rozšíření
(např. CriteriaAPI).
Abych jen neházel samou chválou, přece jen mně na JSF trochu vadila jedna věc a to je „šablonovací systém“. Nebo chcete-li, možnost, kdy budu vkládat své stránky do stejné „formičky“.
Nakonec jsem našel „Facelets“, což je v podstatě rozšíření
samotného JSF, které je ovšem zaměřeno právě na šablonovací systém.
Samotný popis lze nalézt zde.
Pro NetBeans existuje i vlastní plugin, který je popsán zde.
Takže pokud někdo začíná s webovými aplikacemi v Jave, doporučuji JSF-EJB3-JPA. I když není Java EE 5 zrovna jednoduchá záležitost (alespoň pro mě), tak stojí za to alespoň nahlédnout, jak vlastně taková architektura vícevrstvé aplikace (z pohledu Javy), vypadá.
Na webu Jakuba Vrány o PHP, se někteří lidé domnívali, že URL v JSF je statická. Na malý problém existuje malá náplast a tou je „<redirect/>“ v navigation-case. Stejnou fintu je třeba použít, pokud budu tvořit zabezpečenou aplikaci přes url-pattern (/secure/*) v security-constraint.