Comme vous l'avez dit, l' jsfc
attribut est essentiellement utile lorsque vous avez à "convertir" un prototype HTML d'une page JSF. Par exemple, lorsque vous avez un HTML de saisie de texte:
<input type="text" .../>
vous pouvez ajouter l' jsfc
attribut afin de convertir la version HTML de ce composant dans un composant JSF:
<input type="text" jsfc="h:inputText" .../>
C'est l'équivalent de l'écriture de la suite de JSF code:
<h:inputText .../>
Comme indiqué dans le Facelets documentation ici ou ici, l'attribut jsfc
peut également être utilisé pour "carte" Facelets composants. Par exemple, vous pouvez supprimer une partie du code HTML:
<span jsfc="ui:remove">
This won't be compiled either <h:outputText value="#{foo.bar}"/>
</span>
Vous pouvez également créer une table à l'aide de cet attribut:
<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>
Dans cet exemple, nous n'avons pas de lien de ce tableau à un h:datatable
, mais nous créons un tableau avec le code HTML, à l'aide du composant JSF ui:repeat
pour itérer sur les lignes.
Comme vous pouvez le voir, l' jsfc
attribut peut être utilisé pour convertir un composant HTML dans un composant JSF dans une page JSF. Donc pour les composants complexes, tels que la table de données, vous devez utiliser une des solutions de contournement (à l'aide d' ui:repeat
, au lieu de l' h:datatable
de la composante).
Un autre point est que vous ne serez pas en mesure d'utiliser des bibliothèques de composants tels que ceux proposés par RichFaces, IceFaces, Tomahawk, et ainsi de suite. Et ces bibliothèques sont vraiment l'un des intérêts de JSF.
Donc, pour résumer: jsfc
peut être utile pour transformer un prototype HTML dans une applications JSF, essentiellement pour la création de la Preuve de Concepts ou de la conception générale de l'IU. Cependant, je pense qu'il est préférable d'éviter cette composante, une fois le "vrai" développement commence...