2011-03-12 72 views
0

Ui:包含和基於xhtml的標記(源代碼爲elt的標記)對我來說似乎非常相似。兩者都允許重用一段標記。但我相信每個人都應該有一些理由。請有人簡單解釋一下嗎? (我猜如果我閱讀完整的facelets教程,我會學習它,但我現在沒有時間去做,所以請不要鏈接到冗長的文檔:)facelets的ui:包含和自定義標籤有什麼區別?

回答

3

它們非常相似。差異主要是句法。

經過觀察他們的使用一段時間後,似乎慣例是你只在一種情況下使用的片段是ui的候選者:include,而你更經常重用並具有更獨立語義的片段是候選者爲自定義標籤。

E.g.

單個視圖可能有一個包含三個部分的表單;個人資料,工作歷史,偏好。如果頁面變得笨重,可以將它分成更小的部分。 3個部分中的每一個都可以移動到他們自己的Facelet文件中,然後將其用戶添加到原始文件中。

另一方面,您可能有一種特定的方式在應用程序中的許多視圖上顯示圖像。也許你在它周圍畫一條線,在它下面有一些文字等等。不要一遍又一遍地重複這個,你可以再次將它抽象成它自己的Facelet文件。雖然你可以使用ui:包含它,但大多數人似乎更喜歡在這裏創建一個標籤,所以你可以使用例如<my:image src="..." />在你的Facelets上。這看起來更好(更緊湊,更直接與其他組件)。

在與JSF 2.0捆綁在一起的Facelets版本中,簡單標籤可以被composite components取代。這是第三種變體,乍一看看起來很像自定義標籤,但這些東西在技術上是不同的,因爲它們不僅僅是一個包含,而是代表具有聲明屬性的真實組件,能夠附加驗證器等。

+0

感謝解釋花花公子。 – 2011-07-27 17:57:10

相關問題