サーブレットから JspContext 参照を取得する方法を知っている人はいますか?
Jsp に転送するサーブレットがあり、サーブレット内からいくつかの PageContext 変数を設定して、Jsp で使用できるようにしたいと考えています。
サーブレットから JspContext 参照を取得する方法を知っている人はいますか?
Jsp に転送するサーブレットがあり、サーブレット内からいくつかの PageContext 変数を設定して、Jsp で使用できるようにしたいと考えています。
私が理解したかどうかを見てみましょう。サーブレットからJSPを呼び出し、いくつかの変数(サーブレットの制御下にある)をJSPで使用できるようにします。右?
次に、を忘れてくださいPageContext
。これはJSPページに固有のものであり、サーブレットからアクセスすることはできません。リクエスト、セッション、またはサーブレットのコンテキストで設定した属性はすべて、JSPで使用できます。これPageContext
は前のスコープよりも広いスコープでありfindAttribute
、呼び出されると、ページのコンテキスト、リクエスト、セッション、またはサーブレットコンテキスト内で(この順序で)指定された名前の属性を検索するメソッドが付属しています。
したがって、必要なのは、これらの変数をこれらのスコープの1つで属性として設定することだけです。これを使用して、値式()を使用してJSPで使用することをお勧めrequest
しHttpServletRequest.setAttribute("foo", "fooValue")
ます${foo}
。
リクエストスコープを使用する必要があります。pageContext は、JSP のサービス メソッド内の JspFactory の実装依存サブクラスによって取得されます。たとえば、Tomcatでは
public void _jspService(
...
pageContext = _jspxFactory.getPageContext(this, request, response,null, true, 8192, true);
そのため、リクエストが JSP に送信される前に pageContext は存在しません。