1

別のドメイン (同じサーバー上) にある xhtml を .xhtml 内に含めようとしています。

サンプルコードは次のとおりです

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">

    <h:head>
        <h:outputStylesheet library="css" name="style.css" target="body" />
    </h:head>
    <h:body>
        <p:layout id="page" fullPage="true">
            <!-- North -->
            <p:layoutUnit position="north" size="10%"
                style="border: none !important">
            </p:layoutUnit>

            <!-- South -->
            <p:layoutUnit position="south" size="5%" collapsible="true" gutter="0">
                <h:outputText value="South unit Content." />
            </p:layoutUnit>

            <!-- West -->
            <p:layoutUnit position="west" size="200" header="Menu"
                collapsible="true" effect="slide" styleClass="menuBar">
                <h:form id="form1">
                    <p:panelMenu>
                        <p:submenu label="Students">
                            <p:menuitem value="page1" update=":centerpanel"
                                actionListener="#{layoutController.setNavigation('page2.xhtml')}" />
                            <p:menuitem value="page2" update=":centerpanel"
                                actionListener="#{layoutController.setNavigation('http://localhost:8080/externalsite/newpage.xhtml')}" />
                        </p:submenu>
                    </p:panelMenu>
                </h:form>
            </p:layoutUnit>

            <!-- Center -->
            <p:layoutUnit id="center" position="center">
                <h:panelGroup id="centerpanel" layout="block">
                    <ui:include id="include" src="#{layoutController.navigation}" />
                </h:panelGroup>
            </p:layoutUnit>

        </p:layout>
    </h:body>

</html>

したがって、基本的には中央のレイアウト ユニットに、外部の .xhtml (ただし、同じドメインにあります) を含めようとしています。

4

2 に答える 2

3

JSF テンプレートは、同じクラスローダ内で使用できる場合にのみ含めることができます。

外部ページを自分のページに埋め込みたい場合は、iframeを使用する必要があります。

例えば:

<iframe src="http://www.primefaces.org/showcase/ui/home.jsf"/>

ページに PrimeFaces ショーケースを埋め込むことができます。

于 2013-06-11T11:44:53.427 に答える
1

これは不可能です。タグを使用ui:includeすると、他の xhtml ファイルのコード スニペットのみを含めることができます。あなたがしようとしているのは、別のドメインからコードにアクセスすることですが、最終的な Web アプリに表示されるのは、生成された HTML と Javascript コードだけです。ソースコードにアクセスできないため、アプリケーションでそれを操作することはできません。

于 2013-06-11T10:43:25.767 に答える