2016-09-24 12 views
1

jspページを別のページにインクルードしようとしています。パスをハードコードしたくないので、request.getContextPath()メソッドを使用します。 しかし、私はそれを動作させることができません。私はここで、様々な回答に基づいて、いろいろなことを試してみた:私はJSP includeページがrequest.getContextPath()で失敗する

まず最初は

<jsp:include page="<%=request.getContextPath()%>/structure/Navbar.jsp" /> 

が私を与えた:

HTTP Status 500 - /structure/ArtiMarziali/Aikido.jsp (line: 11, column: 24) attribute value for [page] is not properly terminated 

だから私は試してみました:

<% String aikido = request.getContextPath() + "/structure/Navbar.jsp"; %> 
<jsp:include page="<%= aikido %>" /> 

例外をスローする:

その後

<jsp:include page="<%= request.getContextPath() + "/structure/Navbar.jsp" %>" /> 

は、私は本当に

<jsp:include page='<%= request.getContextPath() + "/structure/Navbar.jsp" %>' /> 

を行うことができない最初のものと同じエラーを与える、私は引用符をエスケープする必要があると述べています。私はgetContextPathの結果を変数に設定して、タグ内でそれを使用しようとしましたが、以前と同じエラーが発生しました。

私は実際に何が問題かわからない、私はいくつかの助けが必要です、ありがとう。

(はい、私が使用して<% =%>や他のスクリプトレットは、今日で眉をひそめるされていますが、私のコースはこのように教えられたし、私はプロジェクトのためにそれを遵守することを知っている)

編集:これは、ファイル構造は、役に立つかもしれない:

enter image description here

+0

単純に ''を試したことがありますか? –

+0

はい、それはうまくいきますが、私がそれを好きならgetContextPath()ではなく動作させるのがなぜ実際にはわかりません。 CSSファイルと画像をリンクするとうまくいきますが、jspインクルードではありません。 (と私が言ったように、私は物事を移動する場合は、ハードコードされたパスを使用したくない) – Paul

+0

それはパスが既にコンテキストパスに相対的であるのでうまくいけばそれを追加する必要はありません –

答えて

2

パスが既にあるコンテキストパスに相対、そのようなあなたのinclude直接にそれを追加する必要がないことこれは正常に動作することを意味します:

<jsp:include page="/structure/Navbar.jsp" /> 
関連する問題