1. ホーム
  2. jsp

[解決済み] 別のJSPファイルをインクルードする

2022-05-05 12:22:54

質問

現在、JSPを学ぼうとしています。質問なのですが、現在、私はページのヘッダーとフッターを使用して入れていました。

<%@include file="includes/header.jsp" %>

そして

<%@include file="includes/footer.jsp" %>

しかし、今は、ページの内容も分離しています。ユーザーがあるページ、例えばproductsをクリックすると、そのページにあるJSPファイルを読み込まなければなりません。 includes/pages/products.jsp ですから、ユーザーへのリンクは次のようになります。 <a href="index.jsp?p=products">Products</a> .

なので、p値を取得して、それを元にページを表示させる必要があります。

以下は、これまでに私が行ったことです。

<%
 if(request.getParameter("p")!=null)
 { 
   String p = request.getParameter("p");
%>    

<%@include file="includes/page_name.jsp" %>

<% 
 }
%>

では、変数 "p" の値を "page_name" の位置に配置するにはどうしたらよいでしょうか。

あるいは、他に何か使える方法はありますか?

PHPでは include() または include_once() . 私はこのJSPで少し行き詰っています。

どうすればいいですか?

あなたがやっているのは、スタティックインクルードです。静的インクルードはコンパイル時に解決されるため、実行時にしかわからないパラメータ値を使用しない場合があります。

必要なのはダイナミックインクルードです。

<jsp:include page="..." />

スクリプトレットではなく、JSP ELを使用することに注意してください。また、index.jspでセントラルコントローラーを実装しているようです。その代わりにサーブレットを使用し、このサーブレットから適切なJSPにディスパッチする必要があります。あるいは、StripesやSpring MVCのような既存のMVCフレームワークを使用するのが良いでしょう。