4

タグを使用して、すべてのタブに異なるxhtmlページが表示される動的なTabViewを作成しようとしています<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 に答える