1

カスタム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に非常に慣れていないので、明らかな何かが欠けていると確信しています。しかし、何がわからないようです。どんな助けでも大歓迎です。

4

1 に答える 1

1

これは、カスタム関数自体がJSPのサービス呼び出しのメイン実行内で定義されていないため、生成されたJSPクラス内で別のメソッドとして定義されているためだと思います。そのため、request変数は暗黙的に表示されません。

明確にするために、JSPコンパイラが生成するJavaソース(appserver固有)を見ると、それがどのように連携しているかがわかります。

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

<%!
private String process(String age, BigDecimal amount, ServletRequest request) {
   String url=request.getURL;
   ....
}
%>
于 2010-06-02T15:03:40.210 に答える