我正在尝试创建一个动态 TabView,其中每个选项卡都在 <ui:include>
的帮助下显示不同的 xhtml 页面标签。
以下是我尝试执行的代码片段
Tab tab= new Tab();
Portal portal=itr.next();
tab.setTitle(portal.getPortal_name());
tab.setId(portal.getPortal_name());
/* Code to generate <ui:include> tag
* and add it to tab
*/
tabView.getChildren().add(tab);
我搜索了很多,但找不到任何生成
<ui:include>
的方法标签。谁能建议一种方法来做到这一点?
最佳答案
使用 FaceletContext#includeFacelet()
:
FaceletContext faceletContext = (FaceletContext) FacesContext.getCurrentInstance().getAttributes().get(FaceletContext.FACELET_CONTEXT_KEY);
faceletContext.includeFacelet(tab, "include.xhtml");
请注意,在 View 构建期间未运行时,此构造在 MyFaces 中失败。它适用于莫哈拉。无关 到具体问题,你知道
<p:tabView value>
吗?哪个可以带收藏?无需以编程方式创建选项卡。另见例如How to add button for adding new tabs near last tab?
关于jsf - 如何创建 <ui :include> tag programmatically?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14745259/