如何在我的自定义组件中使用IncludeHandler?

问题: ui背后的类:包含JSF标签我发现我需要使用IncludeHandler来使用

 

编程。 但是,构造函数需要一个“config”参数,我不知道如何设置它。
请举例说明如何将IncludeHandler用于简单包含

  

我的jsf-component目前是以编程方式构建的,但我希望包含一些写成“.xhtml”的部分。 所以最后一个网页设计师只是有一个像这样的组件

  

和一些“.xhtml” – 文件来玩弄造型。 如果有比IncludeHandler更好的方法(仍然需要使用Java)请告诉我:)

如果您的唯一目的是以编程方式使用 ,那么您应该使用FaceletContext#includeFacelet()代替。 假设您在自定义组件中:

 FacesContext facesContext = FacesContext.getCurrentInstance(); FaceletContext faceletContext = (FaceletContext) facesContext.getAttributes().get(FaceletContext.FACELET_CONTEXT_KEY); faceletContext.includeFacelet(this, "include.xhtml"); // this is your current UIComponent. 

这是另一个启动示例,它通过命令按钮演示动态包含:

     

 public void include() throws IOException { FacesContext facesContext = FacesContext.getCurrentInstance(); FaceletContext faceletContext = (FaceletContext) facesContext.getAttributes().get(FaceletContext.FACELET_CONTEXT_KEY); faceletContext.includeFacelet(facesContext.getViewRoot().findComponent("foo"), "include.xhtml"); }