4

サーブレットから JspContext 参照を取得する方法を知っている人はいますか?

Jsp に転送するサーブレットがあり、サーブレット内からいくつかの PageContext 変数を設定して、Jsp で使用できるようにしたいと考えています。

4

2 に答える 2

6

私が理解したかどうかを見てみましょう。サーブレットからJSPを呼び出し、いくつかの変数(サーブレットの制御下にある)をJSPで使用できるようにします。右?

次に、を忘れてくださいPageContext。これはJSPページに固有のものであり、サーブレットからアクセスすることはできません。リクエスト、セッション、またはサーブレットのコンテキストで設定した属性はすべて、JSPで使用できます。これPageContextは前のスコープよりも広いスコープでありfindAttribute、呼び出されると、ページのコンテキスト、リクエスト、セッション、またはサーブレットコンテキスト内で(この順序で)指定された名前の属性を検索するメソッドが付属しています。

したがって、必要なのは、これらの変数をこれらのスコープの1つで属性として設定することだけです。これを使用して、値式()を使用してJSPで使用することをお勧めrequestHttpServletRequest.setAttribute("foo", "fooValue")ます${foo}

于 2012-08-21T14:46:36.360 に答える
1

リクエストスコープを使用する必要があります。pageContext は、JSP のサービス メソッド内の JspFactory の実装依存サブクラスによって取得されます。たとえば、Tomcatでは

public void _jspService(
 ...
pageContext = _jspxFactory.getPageContext(this, request, response,null, true, 8192, true); 

そのため、リクエストが JSP に送信される前に pageContext は存在​​しません。

于 2012-08-21T14:47:21.787 に答える