あなたが言ったように、このjsfc
属性は、HTMLプロトタイプをJSFページに「変換」する必要がある場合に本質的に役立ちます。たとえば、HTML入力テキストがある場合:
<input type="text" .../>
jsfc
このHTMLコンポーネントをJSFコンポーネントに変換するために、属性を追加できます。
<input type="text" jsfc="h:inputText" .../>
これは、次のJSFコードを作成するのと同じです。
<h:inputText .../>
ここまたはここのFaceletsのドキュメントに記載されているように、この属性jsfc
を使用してFaceletsコンポーネントを「マップ」することもできます。たとえば、HTMLコードの一部を削除できます。
<span jsfc="ui:remove">
This won't be compiled either <h:outputText value="#{foo.bar}"/>
</span>
この属性を使用してテーブルを作成することもできます。
<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>
この例では、このテーブルをh:datatable
コンポーネントにリンクしていませんが、JSFコンポーネントを使用しui:repeat
て行を反復処理し、HTMLコードでテーブルを作成しています。
ご覧のとおり、このjsfc
属性を使用して、JSFページで1つのHTMLコンポーネントを1つのJSFコンポーネントに変換できます。したがって、データテーブルなどの複雑なコンポーネントの場合は、いくつかの回避策を使用する必要があります(コンポーネントui:repeat
の代わりにを使用h:datatable
)。
もう1つのポイントは、RichFaces、IceFaces、Tomahawkなどによって提案されたコンポーネントなどのサードライブラリコンポーネントを使用できなくなることです。そして、これらのライブラリは本当にJSFの関心事の1つです。
要約jsfc
すると、HTMLプロトタイプをJSFアプリケーションに変換するのに役立ちます。基本的には、概念実証の作成や一般的なUIの設計に役立ちます。ただし、「実際の」開発が開始されたら、このコンポーネントを回避する方がよいと思います...