2011-07-05 54 views
0

我想寫幾個定製的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上。

+0

我不做MyFaces,所以我不能從頭頂發佈可靠的答案,但是Mojarra只會在項目階段設置爲開發時發出警告。你的也是這樣嗎? MyFaces的行爲可能類似。在'web.xml'中將'javax.faces.PROJECT_STAGE'的''設置爲'Development'。您應該在頁面底部看到(至少在Mojarra中)一些橙色警告行,其內容如*「警告:此頁面調用XML名稱空間http://使用前綴my聲明的bad-namespace,但該名稱空間不存在taglibrary。 「* – BalusC

+0

@BalusC:謝謝。幸運的是,通過在faces-config.xml中聲明組件類型而不是@FacesComponent註釋來解決問題。 –

回答

0

我查了一下,MyFaces沒有顯示任何東西。這似乎是添加在MyFaces上的一個很好的功能。從理論上講,將名稱空間放入並傳遞給生成的文檔是有效的,因此它不是一個錯誤,但實際上在開發時間上的警告不會造成傷害。我爲你創建了這個問題MYFACES-3215,爲了處理它,所以請繼續關注MyFaces Users and Dev Lists,因爲這將在未來的版本中添加。

+0

非常感謝,你是一個善良的人。 –