java - 无法从自定义 JSP 标记文件中的方法内访问隐式对象

标签 java jsp custom-tags

我正在尝试创建自定义 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 源代码(特定于应用程序服务器),您将看到它是如何卡在一起的。

我认为您必须将请求对象声明为函数的参数,并在调用它时将其传入。

<%!
private String process(String age, BigDecimal amount, ServletRequest request) {
   String url=request.getURL;
   ....
}
%>

关于java - 无法从自定义 JSP 标记文件中的方法内访问隐式对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2958817/

相关文章:

java - Jsp中解释动态属性的问题

java - npm run android commad 给出找不到符号错误

java - Jsp窗体Jsp调用onClick方法

java - 选择多个双面

jsp - jsp PageContext 对象的生命周期是什么——它是线程安全的吗?

带有 JS 的 Java 自定义标签

java - 无法使用 Mapstruct 生成没有输入参数的映射方法

java - 如何在java中将字符串abcdefghijklmnop转换为4x4矩阵?

java - 是否可以读取正在写入 HDFS 的数据

java - 将 SiteMesh 与 RequestDispatcher 的 forward() 结合使用