JSF / Facelets: ¿por qué no es una buena idea mezclar JSF / Facelets con tags HTML?

He leído esto varias veces: algunos desarrolladores no son partidarios de intercalar tags JSF / Facelets con tags HTML en sus archivos XHTML. Obviamente, las tags HTML no formarán parte del árbol de componentes de la interfaz de usuario, pero ¿cuál es la desventaja de eso?

A menudo encuentro ejemplos de código donde los autores hacen ese tipo de mezcla:

http://www.ibm.com/developerworks/java/library/j-facelets/

http://www.packtpub.com/article/facelets-components-in-jsf-1.2

http://oreilly.com/catalog/9780596529246

“Seam in Action” también intercala JSF / Facelets y tags HTML.

Estoy confundido acerca de qué usar realmente. Empecé mezclando tags, pero estoy empezando a creer que probablemente no fue la elección correcta. Sin embargo, no veo por qué el enfoque purista es preferible.

Sé con certeza que tengo una tabla donde la tabla de datos JSF no me da la flexibilidad suficiente para mostrar lo que necesito, por lo que hacerlo de forma purificada no es posible.

Además, me pregunto por qué ninguno de los ejemplos anteriores usa f: view, etc. en lugar de las tags html, head, body, etc., codificadas.

¿Puede alguien aclarar esto por mí?

Durante las edades de JSF 1.0 / 1.1, esto no fue “una buena idea”, porque todo el HTML no se tomó automáticamente en el árbol de componentes de JSF cuando se usaba JSP como tecnología de visualización. Todo el HTML simple fue ansiosamente ejecutado por JSP antes del árbol de componentes JSF. P.ej

Lorem ipsum dolor sit amet

Consectetur adipiscing elit

se ha renderizado como

 

Lorem ipsum dolor sit amet

Consectetur adipiscing elit

value1

Para arreglar esto, necesitarías traer en.

 

Lorem ipsum

dolor sit amet

Consectetur adipiscing

elit

Este fue un verdadero dolor de mantenimiento. Esta fue una de las principales razones por las cuales JSF 1.0 / 1.1 era tan odiado.

Desde JSF 1.2, con el nuevo controlador de vista, el ya no era necesario. Los desarrolladores ahora pueden respirar aliviados. Además, el nuevo manejador de vistas permitió a JSF usar una tecnología de visualización diferente a JSP y así nació Facelets.

Ver también:

  • ¿Cuáles son las principales desventajas de Java Server Faces 2.0?
  • ¿Por qué se prefiere Facelets sobre JSP como el lenguaje de definición de vista de JSF2.0 en adelante?
  • ¿Es posible usar JSF + Facelets con HTML 4/5?
  • Soporte de JavaServer Faces 2.2 y HTML5, ¿por qué XHTML todavía se está utilizando?

Como regla general, utilizo una combinación de tags entre betweek HTML y Facelets en las páginas de diseño / plantilla. Pero para las páginas de contenido reales trato de usar solo las tags JSF disponibles con mi biblioteca JSF de elección (JSF + RichFaces).

De esta forma puedo tener más control sobre qué elementos mostrar y ocultar, así como los contenidos dentro de cada elemento, pero aún puedo codificar mi diseño de página principal en el archivo de plantilla de facelets.