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 回答