无法从自定义JSP标签文件中的方法中访问对象
-
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;
....
}
%>
不隶属于 StackOverflow