4

2つの基本的なテンプレートがあります。1つはサイドメニューあり、もう1つはありません。どちらもui:insertタグを含む共通ページを含みます(テンプレートは大きいので、以下の基本的な例です)。

Mojarraを使用すると、すべて正常に機能しましたが、MyFacesに移行したので、ui:insertタグは無視され、関連するui:defineのコンテンツはレンダリングされません(つまり、「Here are myresults」は表示されません)。

どういうわけか、included-page.xhtmlをテンプレートとして指定する必要がありますか?私は試した

<ui:composition template="included-page.xhtml" />

それ以外の

<ui:include src="included-page.xhtml" />

しかし、CSSを失いました。

誰かが解決策を提案できることを願っています:)

どうもありがとう、

ニール

my-page.xhtml

<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
    template="/templates/default-template.xhtml">

    <ui:param name="title" value="My Title" />

    <ui:define name="results">

        Here are my results

    </ui:define>

</ui:composition>

default-template.xhtml

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns:ui="http://java.sun.com/jsf/facelets">

<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
    <title>#{title}</title>
</h:head>

<h:body>

    <ui:include src="included-page.xhtml" />

</h:body>

</html>

含まれています-page.xhtml

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets">

    <ui:insert name="results">

    </ui:insert>

</ui:composition>
4

1 に答える 1

2

である<ui:include>必要があり<ui:decorate>ます。

<ui:decorate template="included-page.xhtml" />

しかし、included-page.xhtmlそれ自体が他の場所で再利用されていない場合、なぜそれが代わりにマスターテンプレートにインライン化されていないのか疑問に思います。

参照:

于 2012-11-01T16:01:43.470 に答える