我有一个绑定(bind)到支持 bean 的 UIComponent
。我想通过我的支持 bean 的 init 方法向与 ui:include
标记相对应的组件添加一个子组件。
例如:
<p:tab>
<ui:include src="/page.xhtml" />
</p:tab>
我想在我的支持 bean 中创建它,例如:
<p:tab binding="${bean.tab}" />
所以基本上我正在寻找 ui:include 的相应 UIComponent 类,这样我就可以将其作为子项添加到我的选项卡属性中。
谢谢!
更新:
我现在正在尝试使用faceletContext.includeFacelet:)
最佳答案
我已经读了这个帖子 20 遍了,一开始我找不到解决方案,所以这是我找到正确方法后的附加评论:
FacesContext facesContext = FacesContext.getCurrentInstance();
FaceletFactory defaultFactory = ApplicationAssociate.getInstance(facesContext.getExternalContext()).getFaceletFactory();
Facelet facelet = defaultFactory.getFacelet(xhtmlUrl);
然后我创建了一个 FaceletHandler 来添加组件。
另一个解决方案是:
FaceletContext faceletContext = (FaceletContext) facesContext.getAttributes().get(FaceletContext.FACELET_CONTEXT_KEY);
faceletContext.includeFacelet(parentComponent, xhtmlUrl);
关于java - JSF2 : add ui:include to binding object's children,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3405156/