こんにちは、私は Java EE を学んでいる初心者です。doGet メソッドに次のコードを含むサーブレット (コントローラー) VersionOverview.java を作成しました。
RequestDispatcher view = request.getRequestDispatcher("WEB-INF/jsp/versions.jsp");
view.forward(request, response);
ファイル WEB-INF/jsp/versions.jsp には次の行が含まれています。
<div id="content">
<jsp:include page="/WEB-INF/jspf/organization-filter.jspf" />
...
</div>
ファイル /WEB-INF/jspf/organization-filter.jspf には次の行が含まれています。
<form name="organization-filter" action="versions">
<input type="text" id="org_name" name="org_name" value="<%= request.getAttribute("org_name") %>">
<br>
<input type="hidden" id="org_id" name="org_id" value="<%= request.getAttribute("org_id") %>">
<br>
<input type="submit" name="submit" value="Submit"/>
</form>
ページ /versions (上記のサーブレットにマップされている) を開くと、org_name という名前の空白の入力フィールドの代わりに、その中に次のテキストが表示されるため、organization-filter.jspf がコンパイルされていないようです。
<%= request.getAttribute(
以下に示すように、versions.jsp の include ディレクティブを変更すると、機能し始めます。
<div id="content">
<%@include file="/WEB-INF/jspf/organization-filter.jspf" %>
...
</div>
jsp:include を使用すると機能しない理由を教えてください。前もって感謝します。ヴォイテック