Como dijiste, el atributo jsfc
es esencialmente útil cuando tienes que "convertir" un prototipo HTML en una página JSF. Por ejemplo, cuando se tiene un texto de entrada HTML:
<input type="text" .../>
se puede añadir el atributo jsfc
el fin de convertir este componente HTML en un componente JSF:
<input type="text" jsfc="h:inputText" .../>
Esto es equivalente a escribir la siguiente código JSF:
<h:inputText .../>
Como se indica en la documentación Facelets here o here, el atributo jsfc
también se puede usar para "mapear" componentes Facelets. Por ejemplo, se puede extraer una parte del código HTML:
<span jsfc="ui:remove">
This won't be compiled either <h:outputText value="#{foo.bar}"/>
</span>
También puede crear una tabla utilizando este atributo:
<table>
<tr jsfc="ui:repeat" value="#{dept.employees}" var="emp" class="#{emp.manager ? 'mngr' : 'peon'}">
<td>#{emp.lastName}</td>
<td>#{emp.firstName}</td>
</tr>
</table>
En este ejemplo, no vinculamos esta tabla para una h:datatable
componente, pero creamos una tabla con código HTML, utilizando el componente JSF ui:repeat
para iterar en las filas.
Como puede ver, el atributo jsfc
se puede utilizar para convertir un componente HTML en un componente JSF en una página JSF. Por lo tanto, para componentes complejos, como la tabla de datos, deberá usar algunas soluciones (usando ui:repeat
en lugar del componente h:datatable
).
Otro punto es que no podrá usar componentes de bibliotecas externas como los propuestos por RichFaces, IceFaces, Tomahawk, etc. Y estas bibliotecas son realmente uno de los intereses de JSF.
Así que para resumir: jsfc
puede ser útil para transformar un prototipo HTML en una aplicación JSF, esencialmente para crear una Prueba de conceptos o diseñar la interfaz de usuario general. Sin embargo, creo que es mejor evitar este componente una vez que comience el desarrollo "real" ...
Bueno ...de hecho, acabo de probar el atributo jsfc con un componente de terceros, y funcionó bien ... –