0

私は jsf facelets を使用して Web アプリケーションを開発しました。UI ヘッダー、メニュー、コンテンツ、およびフッター用に facelet を構成しました。しかし、問題は、ログイン時にヘッダーで1つの画像を使用したことです。メニューのリンクをクリックすると画像が表示され、次のページにリダイレクトされ、ログインしたときにのみ画像が表示されません。それ以外の場合は表示されません

これが私のfaceletテンプレートのxhtmlページです

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">

    <f:view contentType="text/html">
        <h:head>
            <f:facet name="first">
                <meta content='text/html; charset=UTF-8' http-equiv="Content-Type"/>
                <title>PrimeFaces</title>
            </f:facet>
        </h:head>

        <h:body>

            <p:layout fullPage="true">

                <p:layoutUnit position="north" size="100" resizable="true" closable="true" collapsible="true">
                    <p:graphicImage value="logo.gif" />  
                </p:layoutUnit>

                <p:layoutUnit position="south" size="100" closable="true" collapsible="true">
                    Footer
                </p:layoutUnit>

                <p:layoutUnit position="west" size="180" header="Menu" collapsible="true">
                    <ui:insert name="leftmenu">
                        <div>
                            <ui:include src="leftmenu.xhtml" />
                        </div>
                    </ui:insert>
                </p:layoutUnit>

                <p:layoutUnit position="center">
                   <ui:insert name="content">
                        Select one of the links on the left to proceed.
                    </ui:insert>
                </p:layoutUnit>

            </p:layout>

        </h:body>

    </f:view>
</html>

左メニューの xhtml ページ

<!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:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"> 
<h:head></h:head> 
<body> 
<h:form>
    <h:link value="Home" outcome="homePage"></h:link>
    <br />
    <h:link value="Create User" outcome="addUser"></h:link>
    <br />
    <h:link value="Change Password" outcome="addUser"></h:link>
    <br />
    <h:link value="Allocation Tan" outcome="addUser"></h:link>
    <br />
    <h:link value="Batch Upload" outcome="addUser"></h:link>
    <br />
    <h:link value="XML Validation" outcome="addUser"></h:link>
    <br />
    <h:link value="Logout" outcome="login"></h:link>
</h:form>
</body> 
</html>

私の追加ユーザー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:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <ui:composition template="/templates/template.xhtml">       
            <ui:define name="content">
               <h:form id="form">  

    <p:panel id="panel" header="New Person">  

        <p:messages id="msgs"/>  

        <p:commandButton id="btn" value="Save" update="panel" actionListener="#{user.save}"/>  
    </p:panel>  

</h:form>  
            </ui:define>
        </ui:composition>
    </h:body>
</html>

誰でもこの問題を解決するのを手伝ってもらえますか

4

1 に答える 1

0

他のテンプレートは別のディレクトリにあるように見えるため、画像のパスを絶対パスに変更するだけです。レンダリングされたページのソース コードを確認するときに、ブラウザがこの画像を取得しようとしているかどうかを確認することもできます。

これでうまくいくはずです:

<p:graphicImage value="/logo.gif" />
于 2013-06-18T07:34:37.280 に答える