4

我正在尝试创建一个动态 TabView,其中每个选项卡在标签的帮助下显示不同的 xhtml 页面<ui:include>

以下是我尝试执行的代码片段

    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>标签的方法。谁能建议一种方法来做到这一点?

4

1 回答 1

2

使用FaceletContext#includeFacelet()

FaceletContext faceletContext = (FaceletContext) FacesContext.getCurrentInstance().getAttributes().get(FaceletContext.FACELET_CONTEXT_KEY);
faceletContext.includeFacelet(tab, "include.xhtml");

请注意,在视图构建期间未运行时,此构造在 MyFaces 中失败。它适用于莫哈拉。


与具体问题无关,您知道<p:tabView value>哪些可以收集吗?无需以编程方式创建选项卡。另请参阅例如如何添加按钮以在最后一个选项卡附近添加新选项卡?

于 2013-02-07T11:07:29.390 回答