2011-10-07 94 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