我想寫幾個定製的Facelets 2.0標籤,經過幾個小時的工作,我發現我的UIInput子類甚至沒有實例化。然後,我改變了實際的命名空間是這樣的:MyFaces永遠不會拋出異常的未定義的自定義標籤
<html xmlns:my="http://bad-namespace">
...
<my:foo />
</html>
你看,現在my
指向一個不存在的命名空間http://bad-namespace
應該提高一些錯誤,但是,沒有發生異常,<my:foo />
只是靜靜地跳過!
所以,我不能讓我的標籤工作,我也看不到任何錯誤。我不知道該怎麼做。不過,我是新開發自定義Facelets 2.0標籤的。我在Google Facelets 2.0自定義標籤上搜索了一些教程,但沒有獲得太多信息,主要集中在舊的JSF 1.2上。
我不做MyFaces,所以我不能從頭頂發佈可靠的答案,但是Mojarra只會在項目階段設置爲開發時發出警告。你的也是這樣嗎? MyFaces的行爲可能類似。在'web.xml'中將'javax.faces.PROJECT_STAGE'的''設置爲'Development'。您應該在頁面底部看到(至少在Mojarra中)一些橙色警告行,其內容如*「警告:此頁面調用XML名稱空間http://使用前綴my聲明的bad-namespace,但該名稱空間不存在taglibrary。 「* –
BalusC
@BalusC:謝謝。幸運的是,通過在faces-config.xml中聲明組件類型而不是@FacesComponent註釋來解決問題。 –