Alles aus einer Hand?
PrimeFaces ist keine einfache Sammlung von JSF-Komponenten. Das Projekt stellt eher eine "JSF-Suite" dar, die zusätzliche Features für das doch eher lästige JSF-Debugging (FacesTrace), sowie die vereinfachte Entwicklung mit JSF (Optimus) bietet. Die UI-Komponenten des Projekts können grob in zwei Kategorien eingeteilt werden: Webbrowser und Mobile (iPhone).
Schöne neue Welt
Mit knapp 50 JSF-Komponenten stellt PrimeFaces zwar keine extrem große Bibliothek dar, doch die angebotenen Komponenten wissen zu überzeugen! Für das ansprechende Look-and-Feel der Komponenten sowie ihr modernes Verhalten ist in erster Linie nicht PrimeFaces selbst, sondern das JavaScript-Framework jQuery bzw. YUI von Yahoo! verantwortlich. PrimeFaces bietet einen JSF-Wrapper für diese Frameworks an. Für den geneigten JSF-Entwickler bringt das durchaus Vorteile: Er bekommt die Integration dieses sehr mächtigen und zu Recht beliebten Frameworks frei Haus und kann so direkt mit dem Implementieren der Anwendung loslegen. Mit dem TouchFaces-Modul bietet das Projekt ein UI KIT für die Entwicklung von mobilen Webanwendungen. Der Schwerpunkt vom TouchFaces liegt derzeit allerdings lediglich auf dem iPhone – sicherlich ein Tribut an die Beliebtheit des Apple Phones. Einziger Kritikpunkt ist hier, dass für das mobile UI KIT eigenständige Komponenten-Tags genutzt werden und somit mobile Anwendungen nicht kompatibel zu Webanwendungen sind. Wünschenswert ist an dieser Stelle eher ein Austauschen des Rendering-Verhaltens, was dank JSF-Architektur ja problemlos möglich wäre.
Google Guice und mehr...
Das ambitionierte Ziel von Optimus liegt in der XML-freien Entwicklung einer JSF-Applikation. Auf Basis von Google Guice wird ein eigener IoC-"Container" angeboten. Die JSF Beans können so aus der faces-config.xml-Datei "befreit" werden:
...@Controller(name="edit", scope=Scope.VIEW)public class EditBean implements Serializable{...}...
Neben den derzeit üblichen Annotations für die Verwaltung von JSF Managed Beans kommt PrimeFaces (dank Google Guice) ebenfalls mit einer eingebauten JPA-Unterstützung daher:
...@Injectprivate EntityManager entityMgr;...
Wie auch JSF 2.0, bietet PrimeFaces Optimus eine Erweiterung, um die Navigationsregeln ebenfalls ohne XML zu erstellen. Das Prinzip beider Ansätze ist sehr ähnlich. Deklaratives Transaktionsmanagement und verschiedene Security Extensions runden Optimus ab.









