2012-11-24 66 views
1

我試圖通過擴展TagSupport來創建Java方式的自定義標記。我想要使​​用自定義標籤來呈現一些也使用RichFaces和JSF的xhtml文件中的html。JSP Tag Libary和xhtml

我就通過你註冊,然後在頁面jsp自定義標籤見過的所有教程:

<% taglib prefix="example" tagdir="/WEB-INF/tag-descriptor.tld" %> 

然而,這並不在XHTML文檔。我已經看到了基於xhtml片段的自定義xhtml標籤,但我真的需要代碼中的邏輯。

那麼如何在jsf中註冊一個jsp標籤庫?這可能嗎?如果沒有,反正有沒有像在jsp中那樣在xhtml頁面中編寫java腳本?

回答

4

對於Facelet(.xhtml),您無法註冊JSP標籤庫。

Facelets是一種與JSP完全不同的技術,這兩種技術在任何情況下都不兼容,它涉及特定於每種技術的工件(如javax.servlet.jsp.tagext.TagSupport)。

但是,JSF的自定義JSP標記後面是一個組件,您當然可以使用Java爲Facelets創作它們。它歸結爲直接在Java中創建組件,然後在*-taglib.xml中註冊此組件(對於JSF 2.2,此註冊將不再需要)。

有關更多信息,請參閱Simple Java based JSF custom component

+0

失望,但感謝您的回答。 –

+0

你爲什麼失望?無論如何,JSP中的標籤只是一個組件的包裝。標籤支持類只將參數(值和表達式)委託給組件。如果你需要的東西本質上不是以組件爲中心的,那麼Facelets確實會爲你提供標籤處理程序。見例如http://jdevelopment.nl/passing-action-methods-facelets-tags和http://weblogs.java.net/blog/edburns/archive/2009/10/15/jsf2-facelet-tag-handlers –