Liferay Faces permite desarrollar portlets JSF para Liferay. JSF es un framework estándar para crear interfaces de usuario en Java que surgió en 2004 y ha tenido varias versiones. Liferay Faces es un puente entre el ciclo de vida de portlets y JSF que incluye soporte para CDI y componentes como los de Liferay y AUI. El documento muestra cómo funciona JSF, sus ventajas y características clave de Liferay Faces, concluyendo con una demostración de su uso.
1. Desarrollo de portlets JSF con
Liferay Faces
Juan González del Pino
Sofware Engineer – OCMJEA 6, Liferay
2. Contenido
• Java Server Faces
●
Historia
●
Cómo funciona
●
Ventajas
• Liferay Faces
●
Historia
●
Características
• Demo Liferay Faces
3. JSF - Historia
●
JSF 1.0 (JSR 127) → Marzo 2004
●
JSF 1.1 → Mayo 2004
●
JSF 1.2 (JSR-252) → 2006
●
JSF 2.0 (JSR-314) → 2009
●
●
●
Corrige gran parte de las carencias de la versión anterior
Bookmarkable URL, composite components...
JSF 2.2 (JSR-344) → 2013
●
Faces Flows, Stateless views, HTML5 passthrough...
4. JSF – Cómo funciona
●
Varias implementaciones:
●
Mojarra
●
MyFaces
●
Basado en componentes (UI)
●
La vista se genera y procesa en servidor
●
●
Gran parte de las tareas están automatizadas
(formulario, validación, recursos y dependencia)
CDI (JSR-299)
●
●
●
Context and Dependency Injection
@Inject private SessionBean sessionBean
Fases de una petición JSF
6. JSF - Ventajas
●
Estándar
●
Basado en componentes:
●
●
Reutilización (loose coupling)
●
Cohexistencia de distintos proveedores (< vendor lock-in)
●
●
Separación de tareas UI ↔ backend (vs JSP y scriptlets)
UI personalizado por cada dispositivo
La vista se genera en el servidor:
●
●
Seguridad (form spoofing)
Tareas automatizadas, CDI:
●
Productividad
8. Liferay Faces - Historia
●
●
●
Comenzado como proyecto Portletfaces (Mimacom
y Triton)
2012: se contribuye el proyecto a Liferay → Liferay
Faces (Neil Griffin).
Agosto 2012:
●
●
●
2.x (JSF 1.2)
3.x (JSF 2.1).
Actualidad:
●
2.1.4
●
3.1.4
●
4.x → Compatibilidad con JSF 2.2
9. Liferay Faces - Características
●
Puente (Bridge) entre ciclo de vida Portlet y JSF.
●
Soporte CDI
●
Componentes:
●
Liferay (<liferay-ui:captcha/>..)
●
AUI
●
Más componentes próximamente
●
JSF + Liferay: permisos, service builder...
●
Utilidades disponibles:
●
LiferayFacesContext.getInstance().getThemeDisplay()
●
#{liferayFacesContext.themeDisplay}
10. Liferay Faces – Demo
●
Crear a partir de arquetipo maven:
●
●
liferay-portlet-primefaces-archetype
●
liferay-portlet-icefaces-archetype
●
liferay-portlet-richfaces-archetype
●
●
liferay-portlet-jsf-archetype
liferay-portlet-liferay-faces-alloy-archetype
Crear a partir de Liferay IDE
●
Soporte Apache Ivy (dependencias)
11. Liferay Faces - Demo
●
Atención a:
●
Look & Feel
●
XHTML vs JSP y Scriptlets
●
●
Unión entre vista y backend mediante Expression
Language
Facilidad para añadir componentes/funcionalidades
(AJAX)
●
Ausencia de javascript/css
●
“Separation of concerns” (SoC)