2011-09-30 77 views
3

我想知道方法UIComponent#getFamily()可能返回null或不? Mojarra 2.1.3在返回null而不是MyFaces 2.1.3時會拋出異常。May UIComponent#getFamily()是否返回null?

組件是否真的需要一個家族?

+0

空字符串會好嗎?沒有例外,當它是空的。實現沒有渲染器的組件的首選方式是什麼? –

回答

6

我想知道它的方法UIComponent.getFamily()可能返回null或不?

這是無處明確記錄。所以我認爲這是spec/javadoc有點疏忽。您可能需要在spec中發佈關於此的issue報告。


是否組件真正需要的家庭?

我總是指定他們,所以我從來沒有見過你鑽嘴魚科得到了異常。如果你的組件是相當獨特的,你可以考慮讓它返回與組件類型(類名)相同的值,或者如果有更多的相關組件,那麼組件的包名。


什麼是實現一個沒有渲染器組件的首選方法是什麼?

返回nullgetRendererType()。你可以通過組件的構造函數中的setRendererType(null)來準備:

public MyComponent() { 
    setRendererType(null); // This component doesn't have an renderer. 
} 
+0

感謝那詳細的答案! com.sun.faces.facelets.tag.jsf.ComponentSupport.isForm(UIComponent)在第477行拋出一個NullPointerException,因爲我在getFamily()中返回null。也許我應該報告... –

+1

我看到你做到了:http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-1037幹得好報告:) – BalusC

相關問題