2

私のプロジェクトにあるディレクトリ構造は次のとおりです

WebContent
 --resources
 --WEB-INF
   --classes
   --jsp
     dashboard.jsp
     home.jsp
   --lib

Jquery メソッドを使用して、dashboard.jsp 内に home.jsp をロードしたい

$("#result").load("home.jsp");

しかし、それは機能していません。load メソッドで home.jsp ページを参照する方法が間違っていると思います。WEB-INF/jsp フォルダーの下にある (dashboard.jsp から) home.jsp を呼び出すにはどうすればよいですか?

4

2 に答える 2

4

コメントで述べたように、URLでWEB-INFフォルダ内のファイルにアクセスすることはできません。ただし、jsp:includeを介してアクセスできる場合があります

<jsp:include page="WEB-INF/home.jsp" />

(それが機能するかどうかはわかりませんが、該当する場合は試してみる価値があります)

URLは、常に「結合された」URLに相対的です(より適切な単語がないため)。したがって、サーブレットを介して.jspファイルにアクセスする場合:

request.getRequestDispatcher("/WEB-INF/dashboard.jsp").forward(request, response);

参照するURLは、実際にはサーブレットのURLです。

これを考慮に入れると、URLは次のようになります $("#result").load("/WEB-INF/home.jsp")が、WEB-INFフォルダー全体は、サーブレット以外のどこからでもアクセスできないため(そして、サーブレットにディスパッチするためだけに)、jqueryからhome.jspにアクセスできません。

したがって、問題の解決策を提供するには、次のようにします。

また

  • home.jspをWEB-INFフォルダーから取り出します。
  • そこにディスパッチするサーブレットを作成し、
  • jsp:includeを試してください
于 2013-02-27T12:29:15.000 に答える
2
$("#result").load("/home.jsp");
于 2013-02-27T12:03:11.400 に答える