1

上のディレクトリにあるページに移動する方法がわかりません。それはまったく可能ですか?ここに私のプロジェクト構造があります:

ここに画像の説明を入力

質問:フォルダーmain_pagesからインクルード<ui:composition template="web2/web/index.xhtml">するページのコードでどのように行を表示する必要があるか、および画像フォルダーから画像を挿入する方法(正しいパスを取得できません、io.exception はまだ): onas.xhtmlindex.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"   
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      >
    <h:body>

        <ui:composition template="web2/web/index.xhtml">

            <ui:define name="centerContent">
                    <h:form>
                        <p:growl id="msg" showDetail="true" sticky="true" />
                        <p:panelGrid styleClass="myPanel">
                            <p:row>
                                <p:column>
                        <ui:param name="mainTag" value="Z chęcią odpowiemy" />
                <h2>Zapytaj</h2>
                        <h4>#{mainTag}</h4></p:column>
                            </p:row>
                            <p:row>
                                <p:column><p:inputTextarea styleClass="myTextArea" autoResize="true" value="#{mySendBean.mailContent}"/></p:column>
                                <p:column>
                        <h:commandButton actionListener="#{mySendBean.sendMail2()}" value="Wyślij" update="msg">
            </h:commandButton>
                                    </p:column>
                            </p:row>
                        </p:panelGrid>
                    </h:form>
            </ui:define>


        </ui:composition>

    </h:body>

</html>

コンポジションを次のように変更すると:

<ui:composition template="#{request.contextPath}/index.xhtml">

エラーが発生します:

/onas.xhtml @11,74 <ui:composition template="#{request.contextPath}/index.xhtml"> Invalid path : /web2/faces/index.xhtml

または、/faces/ を追加すると:

/onas.xhtml @11,74 <ui:composition template="#{request.contextPath}/faces/index.xhtml"> Invalid path : /web2/faces/index.xhtml
4

1 に答える 1

3

コンポーネント内のすべてのパス<ui:xxx>は、「Web ページ」フォルダーである Web コンテンツ ルートへの絶対パスです。/また、相対パスではなく、で始まる絶対パスを使用することをお勧めします。

したがって、これは次のようにする必要があります。

<ui:composition template="/index.xhtml">

URL を (エンドユーザー用に) 手動で作成する場合に#{request.contextPath}のみ必要です。これ/facesは、JSF マッピングを呼び出したい場合にのみ必要です。

以下も参照してください。


具体/WEB-INF的な問題とは関係ありませんが、直接アクセスできないように、テンプレート ファイルをフォルダーに配置することをお勧めします。

以下も参照してください。

于 2013-04-14T17:51:47.377 に答える