現在、JSP を学習中です。質問ですが、現在、私は次の方法でページのヘッダーとフッターを組み込んでいました。
<%@include file="includes/header.jsp" %>
そして
<%@include file="includes/footer.jsp" %>
しかし、今はページ コンテンツも分離しています。したがって、ユーザーが製品などのページをクリックした場合、次の場所にある 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」の位置に配置するにはどうすればよいでしょうか?
または、他に使用できる方法はありますか?
include()
PHP では、または を使用できますinclude_once()
。この JSP では少し行き詰まっています。:(
ベストアンサー1
あなたが行っているのは静的インクルードです。静的インクルードはコンパイル時に解決されるため、実行時にのみ判明するパラメータ値を使用しない可能性があります。
必要なのは、動的なインクルードです:
<jsp:include page="..." />
スクリプトレットではなく JSP EL を使用する必要があることに注意してください。また、index.jsp を使用して中央コントローラを実装しているようです。代わりにサーブレットを使用して、このサーブレットから適切な JSP にディスパッチする必要があります。または、Stripes や Spring MVC などの既存の MVC フレームワークを使用することをお勧めします。