0

xhtmlページを呼び出しているjspページがあります。xhtmlをfacesServletにマッピングし、すべてのリソースサーブレットをアクティブにして、xhtmlページにアクセスすると、すべてのjsおよびcssファイルを正常にマッピングします。

jspページにアクセスすると、それらのファイルは参照されず、firebugがあらゆる種類のjsエラーを表示します。

回避策として、js ファイルと css ファイルを Web フォルダーに追加し、それらを xhtml および jsp ページに含めようとしましたが、それらは参照されておらず、現在のところ、xhmtl ページに直接アクセスするとファイルのアップロードは正常に機能しますが、 jspページにアクセスすると、jsエラーが発生します.jsファイルを含める他の方法はありますか.

これが私のjsファイルを参照する方法です

<%@ include file="/common/taglibs.inc" %>

<html>
<head>
    <link rel="stylesheet" href="/css/Main.css" type="text/css">
    <link rel="stylesheet" href="/css/Admin.css" type="text/css">
    <link rel="stylesheet" href="/css/Home.css" type="text/css">
    <script type="text/javascript" src="/js/icefaces/ace-jquery.js"/>
    <script type="text/javascript" src="/js/icefaces/ace-components.js"/>
    <script type="text/javascript" src="/js/icefaces/icepush.js"/>
    <script type="text/javascript" src="/js/icefaces/bridge.js"/>
    <script type="text/javascript" src="/js/icefaces/compat.js"/>
    <script type="text/javascript" src="/js/icefaces/fileEntry.js"/>
    <script type="text/javascript" src="/js/icefaces/jsf.js"/>
    <script type="text/javascript" src="/js/icefaces/icefaces-compat.js"/>


    <!-- BEGIN SCRIPT TO OPEN RIGHT NOW HELP POPUP, THIS SCRIPT INCLUDES THE FUNCTION OPENRN-->
    <
    %@ include file="/js/popupRightNow.inc" %>

    <!-- END SCRIPT TO OPEN RIGHT NOW HELP POPUP, THIS SCRIPT INCLUDES THE FUNCTION OPENRN-->

    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<jsp:include page="/navigation/TopNav.jsp" flush="true"/>

<jsp:include page="/trade_entry/UploadBlotter.xhtml"/>


<!--BEGIN BOTTOM NAV -->
<jsp:include page="/navigation/BottomNav.jsp" flush="true"/>
<!--END BOTTOM NAV -->
</body>
</html>

ご意見、ご提案はありますか?

アップデート:

を使用して新しいページを作成する必要があり、ページを作成jsf2しましたxhtmlが、アプリケーションheaderfooterテーマを取得したいのですが、それらはjsp今定義されています。jspxhtml

FaceletsページにJSPページを含める方法を試しましたか? しかし、myタグが認識されなかったため、最終的にページを作成しjspxhtmlその中にページを含めようとしたため、それも機能しませんでした。

したがって、現在のところ、xhtmlページに直接アクセスすると機能しますが、情報を含むjspページにアクセスしたり、100%機能しないと言ったりすると、何を達成しようとしているのかを明確にすることができます.header/footericefacesjsf

更新 2

js ファイルjavax.faces.resourcesは xhtml ページで参照されますが、ページでは参照されませんjsp

4

1 に答える 1

2

これらの JS/CSS ファイルをダウンロードする必要があるのは Web ブラウザーです。これらの JS/CSS ファイルをロード/インクルードする必要があるのはサーバーではありません。

したがって、で指定したパスsrchref属性は、ブラウザのアドレス バーに表示される現在のリクエスト URL に対して相対的に解決されます。それらは、パブリック Web コンテンツ内の JSP ファイルの場所に対して相対的に解決されません。

したがって、リクエスト URL にコンテキスト パスが含まれている場合は、

http://localhost:8080/somecontextpath/page.jsp

次に、たとえば<link href="/css/Main.css">、次の URL から Web ブラウザーによってダウンロードされます。

http://localhost:8080/css/Main.css

実際にはそうあるべきだったのに

http://localhost:8080/somecontextpath/css/Main.css

それに応じて修正します。

<link rel="stylesheet" href="${pageContext.request.contextPath}/css/Main.css" type="text/css">

または、Facelets を使用している場合

<link rel="stylesheet" href="#{request.contextPath}/css/Main.css" type="text/css">

<h:outputStylesheet>または、JSF 2 (および<h:outputScript>コンポーネント)を使用している場合

<h:outputStylesheet name="css/Main.css" />

(およびフォルダーを公開Webコンテンツのサブフォルダーに配置/css/jsます/resources


ちなみに、次の行はまったく意味がありません。

<jsp:include page="/trade_entry/UploadBlotter.xhtml"/>

ここでビューテクノロジーを混合しています。一方を他方に含めることはできません。Facelets は JSP の後継です。どちらかを使用してください。それらを 1 つの Web アプリケーションに混在させることはできますが、1 つのビューに混在させることはできません。

于 2012-04-12T01:55:47.553 に答える