カスタムJSPタグファイルのメソッド内からの関連するオブジェクトにアクセスできません

StackOverflow https://stackoverflow.com/questions/2958817

  •  23-10-2019
  •  | 
  •  

質問

カスタムJSPタグを作成しようとしています。私がリクエストがカスタム関数のスコープが外れているように見えるという事実を除いて、すべてが正常に機能しています。

.tagファイルからの関連ビットは次のとおりです。

<%!
private  String process(String age, BigDecimal amount)
        {
//Attempting to access request here results in an compile time error trying to:
String url=request.getURL;
        }
%>

私はJSPが非常に初めてなので、明白なものが足りないと確信していますが、何を理解できないようです。どんな助けも感謝しています。

役に立ちましたか?

解決

それは、カスタム関数自体がJSPのサービスコールのメイン実行内で定義されていないが、生成されたJSPクラス内の個別の方法として定義されているためだと思います。そのため、 request 変数は暗黙的に見えるように見えません。

明確にするために、JSPコンパイラが生成するJavaソース(AppServer固有)を確認した場合、それがどのようにハングするかがわかります。

リクエストオブジェクトを関数のパラメーターとして宣言し、それを呼び出すときに渡す必要があると思います。

<%!
private String process(String age, BigDecimal amount, ServletRequest request) {
   String url=request.getURL;
   ....
}
%>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top