私の同僚はnetbeansを使用していますが、そのために以下が正常に検証されます。
<jsp:include page="/somepage.jsp?parameter=value"/>
まだ日食で私は得る
選択したパスにフラグメントが見つかりませんでした
これは、以下が正常に検証されるため、パラメーターの追加と関係があります。
<jsp:include page="/somepage.jsp"/>
これを修正する方法はありますか?
<jsp:param>
リクエストパラメータを渡すために使用する必要があります。
<jsp:include page="/somepage.jsp">
<jsp:param name="parameter1" value="value1"/>
</jsp:include>
別のJSPページへのパラメーターの受け渡しインクルードアクション(JSPページへのファイルのインクルードを参照)は、インクルードされたJSPページを実行し、生成された出力を独自の出力ストリームに追加します。URLのクエリ文字列から解析されたリクエストパラメータは、メインのJSPページだけでなく、含まれているすべてのJSPページでも使用できます。JSPページを呼び出すときに、リクエストパラメータを一時的に上書きしたり、新しいリクエストパラメータを一時的に導入したりすることができます。これは、jsp:paramアクションを使用して実行されます。
この例では、param1はクエリ文字列で指定されており、呼び出し先のJSPページで自動的に使用可能になります。param2もクエリ文字列で指定されますが、呼び出し元によってオーバーライドされます。呼び出し後、param2が元の値に戻ることに注意してください。param3は、呼び出し元によって作成された新しい要求パラメーターです。param3は呼び出し先のみが使用でき、呼び出し先が戻ると、param3は存在しないことに注意してください。呼び出し元のJSPページは次のとおりです。
<html>
<head></head>
<body>
<jsp:include page="callee.jsp" />
<jsp:param name="param2" value="value2" />
<jsp:param name="param3" value="value3" />
</jsp:include>
Caller:
param1: <%= request.getParameter("param1") %>
param2: <%= request.getParameter("param2") %>
param3: <%= request.getParameter("param3") %>
</body>
</html>
呼び出されているJSPページは次のとおりです。
呼び出し先:
param1: <%= request.getParameter("param1") %>
param2: <%= request.getParameter("param2") %>
param3: <%= request.getParameter("param3") %>
例がURLで呼び出された場合:
http://hostname.com?param1=a¶m2=b
出力は次のようになります。
呼び出し先:
param1:a
param2:value2
param3:value3
発信者:
param1:a
param2:b
param3:null
http://www.exampledepot.com/egs/javax.servlet.jsp/caller.jsp.htmlにアクセスします
Eclipseは、含まれているファイルの名前が「somepage.jsp?parameter = value」であると見なしますが、これはもちろん存在しません。パスの解析/検証に使用するメカニズムはEclipseよりも優れているため、NetBeansで正常に検証されます。
Eclipseのエラーは誤検知です(「somepage.jsp」が実際に予期された場所に存在すると想定)。これは、JSPコンパイラがパスを正しく解釈し、「parameter=value」をパラメータとしてインクルードされたJSPにインクルードするためです。 :
${param.parameter}
また${param['parameter']}