2013-02-28 45 views
2

我讀過教程:http://jsflive.wordpress.com/2011/03/24/custom-component-library/,其中作者正在製作空.taglib.xml文件,根據教程,標籤應自動從資源子文件夾加載。是否有必要在facelet taglib 2.0中聲明標籤?

但是,我,我有例外:

javax.faces.FacesException:無法獲取組件元數據 myComponent.xhtml

我必須手動指定每個標籤:

<tag> 
    <tag-name>myComponent</tag-name> 
    <source>tags/mylib/myComponent.xhtml</source> 
</tag> 

我錯過了什麼嗎?標籤定義位置在哪裏自動解決?我正在運行WebSphere 7.0MyFaces 2.0.7

+0

但他們在項目taglib.xml文件,這是我GOOGLE了他們... – 2013-02-28 16:23:04

+0

發佈您的代碼:聲明,定義,使用。 – 2013-03-12 15:19:17

回答

2

我認爲你在這裏混合起來。在我上面提到的博客文章中,我加入複合材料部件像這樣的標記庫:

<facelet-taglib> 
    <namespace>http://jsflive.at/taglib</namespace> 
    <composite-library-name>jsflive</composite-library-name> 
</facelet-taglib> 

這增加了該資源庫的所有複合材料部件與composite-library-name指定的名稱。標籤名稱是按照慣例從文件名派生的。

你相反指定標籤的Facelets的片段:

<tag> 
    <tag-name>myComponent</tag-name> 
    <source>tags/mylib/myComponent.xhtml</source> 
</tag> 

這有什麼好做的複合成分!這種方法是爲JSF 2.0定義Facelets片段定製標籤的方式。您的代碼爲引用的xhtml文件創建了一個標記,該標記可以是任意的Facelets文件。在這種情況下,路徑相對於taglib.xml文件的位置。

JSF 2.2然而將提供一種方式來爲特定的複合材料部件的標籤。我的帖子http://jsflive.wordpress.com/2013/04/06/jsf22-cc-taglib/顯示了這一過程。

+0

感謝您指出2.2指定自定義合成標籤的方式! – 2014-10-23 06:26:13

相關問題