3

JavaリストからPrimefacesタブを作成したい。私はこのコードをテストしました:

<p:tabView value="#{DatacenterProfileController.data}" var="listItem">
    <p:tab title="#{listItem.name}">
        <ui:insert>
            <ui:include src="#{listItem.page}" />
        </ui:insert>
    </p:tab>
</p:tabView>

private List<PagesObj> dataList = new ArrayList<>();

    public class PagesObj {

        private String name;
        private String page;

        public PagesObj(String name, String page) {
            this.name = name;
            this.page = page;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getPage() {
            return page;
        }

        public void setPage(String page) {
            this.page = page;
        }
    }

    @PostConstruct
    public void datagenerate(){
        dataList.add(new PagesObj("General", "DCProfileTabGeneral.xhtml"));
        dataList.add(new PagesObj("Zones", "DCProfileTabZones.xhtml"));
        dataList.add(new PagesObj("Generators", "DCProfileTabGenerators.xhtml"));
        dataList.add(new PagesObj("HVAC", "DCProfileTabHVACs.xhtml"));
    }

    public List<PagesObj> getdata() {

        return dataList;
    }

しかし、何らかの理由でタブの本体が正しくロードされていません-ファイルが見つからないためか、本体タブが空になります。問題を解決するのを手伝ってくれませんか。

4

2 に答える 2

4

tabView Issue 4051でincludeを使用すると、これが問題であることがわかりました。

したがって、これは実際の例です。

<p:tabView  id="tabW">
    <c:forEach items="#{DatacenterProfileController.data}" var="listItem"> 
        <p:tab title="#{listItem.name}">
            <h:panelGrid columns="2" cellpadding="10">
                <ui:include src="#{listItem.page}.xhtml"  />
            </h:panelGrid>
        </p:tab>
    </c:forEach>
</p:tabView>

このprimefacesフォーラムから取得

于 2013-01-02T10:34:40.110 に答える
1

現在テストできませんが、ui:insertは必要ないと思います。したがって、コードは次のようになります。

<p:tabView value="#{DatacenterProfileController.data}" var="listItem">
    <p:tab title="#{listItem.name}">
         <ui:include src="#{listItem.page}" />
    </p:tab>
</p:tabView>

また、このページが含まれているページと同じディレクトリにあることを確認してください

于 2012-12-28T15:44:10.610 に答える