以编程方式在MyFaces中包含xhtml片段

时间:2016-02-03 13:17:00

标签: facelets jsf-2.2 myfaces

我知道在MyFaces中可以以编程方式将xhtml片段添加到组件树中,而不是使用ui:include

我所说的snipplet是(原始形式):

ViewDeclarationLanguage vdl = facesContext.getApplication().getViewHandler().getViewDeclarationLanguage(facesContext, facesContext.getViewRoot().getViewId());

Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put("src", "/fragmentToInclude.xhtml");
UIComponent component = vdl.createComponent(facesContext, "http://java.sun.com/jsf/facelets", "include", attributes);


我遇到的问题无法传递参数,通常会通过<ui:param .../>标记传递。

我当然尝试将params添加到attributes地图中:

attributes.put("testingParam1", "Yeah, it worked!");

但这似乎没有帮助。我的测试片段的内容非常简单:

 <ui:composition xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
     <div class="testingDiv">#{empty testingParam1 ? 'testingParam1 IS EMPTY' : testingParam1}</div>
 </ui:composition>

片段已正确加载,但我只能得到“空”信息。

我已经浏览了多个资源,但在那里找不到答案:

请知道,这是否可能?或者我错过了什么?感谢任何提示。

0 个答案:

没有答案