正如您所說,當您必須將HTML原型「轉換」爲JSF頁面時,jsfc
屬性本質上是有用的。例如,當你有一個HTML輸入文本:
<input type="text" .../>
你可以以這個HTML組件轉換成一個JSF組件添加jsfc
屬性:
<input type="text" jsfc="h:inputText" .../>
這相當於編寫以下JSF代碼:
<h:inputText .../>
作爲Facelets的文檔here或here中所述,屬性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
屬性可用於將一個HTML組件轉換爲JSF頁面中的一個JSF組件。因此對於複雜的組件,例如數據表,您必須使用一些解決方法(使用ui:repeat
而不是h:datatable
組件)。另一點是你將不能使用第三庫組件,例如RichFaces,IceFaces,Tomahawk等提出的組件。而這些庫真的是JSF的利益之一。
因此總結:jsfc
可以用來將HTML原型轉換爲JSF應用程序,本質上用於創建概念驗證或設計通用UI。不過,我認爲一旦「真正」的開發開始,避免這個組件更好...
呃...實際上,我剛剛用第三方組件測試了jsfc屬性,它工作正常。 –