2011-10-07 96 views
1

我試圖將我的JSF2頁面拆分爲複合組件。所以我決定把複合組件放在一個邏輯文件樹中。例如:複合組件支持bean位置

的WebContent /資源/組件/第1頁/ component1.xhtml

相關聯的豆是

的Java資源/ SRC /組件/第1頁/ component1.java

它的包裝是這樣的components.page1

在此示例中,找到並呈現了component1.xhtml,但該服務器未找到bean。

如果我不使用子包:

的WebContent /資源/第1頁/ component1.xhtml
的Java資源/ src目錄/第1頁/ component1.java

所以上課的時候是在包page1,它的工作原理!

複合組件bean和子包是否存在問題?

我使用MyFaces 2.0,Tomcat 6和Eclipse。

+0

它應該只是工作無論哪種方式。也許你對「支持bean」的定義並不完全正確。也許你的意思是「支持組件」。它是JSF'@ ManagedBean'嗎?難道你不是指'@ FacesComponent'的'UIComponent'實現嗎? – BalusC

+0

是的,它是擴展UIComponentBase的後備組件。它不是託管的bean。 – boblemar

回答

1

您需要componentType屬性<cc:interface>來顯式指定支持組件。

<cc:interface componentType="component1"> 

package components.page1; 

@FacesComponent("component1") 
public class Component1 extends UINamingContainer { 
    // ... 
} 
+0

好的。有用。我真的相信我嘗試過。 – boblemar