Buenas Prácticas en el uso de JSF2
- Área: Capa de Presentación
- Tipo de pauta: Directriz
- Carácter de la pauta: Obligatoria
- Tecnologías: Capa de presentación
Considerar las siguientes indicaciones para el desarrollo basado en la especificación JSR-314 que da sentido a la implementación de la versión 2.0 de JSF
Pautas
Título | Carácter |
---|---|
Navegación | Obligatoria |
Anotaciones | Obligatoria |
Creación y almacenamiento del bean | Obligatoria |
Inicialización de propiedades del bean | Obligatoria |
Uso de validadores | Obligatoria |
Estructura de directorios | Recomendada |
Importación de librerías | Obligatoria |
Subvistas | Obligatoria |
Navegación
Hacer uso adecuado de la navegación implícita, condicional y preventiva
Se debe utilizar la navegación implícita, condicional o preventiva, ya permiten que no sea necesario declarar reglas de navegación y condicionar la misma, de otra manera el fichreo de configuración se vuelve poco manejable.
Anotaciones
Utilizar las anotaciones para declarar los managed beans en la especificación
Es necesario hacer uso de las anotaciones @ManagedBean y @RequestScoped. Ya que al especificar en una versión anterior de JSF, se produce una sobrecarga del fichero de configuración faces-config.xml.
Creación y almacenamiento del bean
Crear y almacenar el bean antes de que se curse la petición
Es necesario crear y almacenar el bean antes de que alguna petición sea cursada. En la anotación @ManagedBean existe un atributo "eager". Éste se puede utilizar para definir en que momento se crea un bean. Si está a "true" el ámbito es de aplicación y el bean debe crearse al arrancar la aplicación y no al referenciar la primera vez al bean.
Inicialización de propiedades del bean
Inicializar las propiedades del bean haciendo uso de la anotación @ManagedProperty
Para marcar una propiedad de los beans es necesario hacer uso de la anotación @ManagedProperty. Resulta interesante poder inicializar las propiedades de los beans. Un bean inicializado es aquel que cuando se crea pasa a los métodos set, las propiedades definidas por defecto.
Uso de validadores
Utilizar la especificación JSR Bean Validation (JSR-303)
Es necesario utilizar la especificación JSR Bean Validation (JSR-303) que define mecanismos independientes para especificar restricciones de datos de validación mediante la etiqueta <f:validateBean>. Estas validaciones se definen con anotaciones en el propio Bean.
Estructura de directorios
Seguir la estructura de directorios estándar para una aplicación JSF.
Se recomienda seguir la estructura de directorios estándar para una aplicación JSF. Ésta está compuesta por los directorios "src" para el código, "web" para las páginas y "WEB-INF", para los ficheros de configuración.
Importación de librerías
Usar lo prefijos correctos a la hora de importar librerías.
Se debe usar el prefijo “f” para hacer referencia a etiquetas del núcleo de la implementación mientras que el prefijo “h” para hacer referencia a etiquetas de componentes HTML
Subvistas
No emplear la etiqueta "f:subview" en lugar de la etiqueta "h:panelGroup".
Todas las páginas incluidas como subvistas deberían tener su propia etiqueta "f:subview" con un identificador único.
Contenidos relacionados
Código | Título | Tipo | Carácter |
---|---|---|---|
RECU-0131 | JSF2 | Referencia | Recomendado |
RECU-0130 | Manual de JSF | Manual | Recomendado |