Java 检查JSP中的反射是否存在变量

Java 检查JSP中的反射是否存在变量,java,jsp,reflection,Java,Jsp,Reflection,我在JSPboolean isPresent=false中定义了一个变量,然后在一个包含的JSP中编写了代码来检查这个变量是否存在,但得到的是NoSuchFieldException Class thisClass = this.getClass(); try { Field field = thisClass.getDeclaredField("isPresent"); } catch (Exception ex) { //ToDo } 想知道哪里出了问题。如果您使用以下定义

我在JSP
boolean isPresent=false
中定义了一个变量,然后在一个包含的JSP中编写了代码来检查这个变量是否存在,但得到的是NoSuchFieldException

Class thisClass = this.getClass();
try {
    Field field = thisClass.getDeclaredField("isPresent");
}
catch (Exception ex) {
    //ToDo
}
想知道哪里出了问题。

如果您使用以下定义:

<%
    boolean isPresent = false;
%>
但如果将变量的声明更改为:

 <%!
     boolean isPresent = false;
 %>
正如您现在看到的,变量是范围类而不是方法范围

 <%!
     boolean isPresent = false;
 %>
public final class testing_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent {

    boolean isPresent = false;