考虑以下示例:
<% int testNumber = 1; %>
//Some HTML goes here
<%=testNumber%>
我得到编译错误:
testNumber cannot be resolved to a variable
有人可以解释发生了什么吗?
最佳答案
您需要确保您了解变量作用域。它在scriptlet中与在普通Java类中相同。
因此,如果您实际有
<%
if (someCondition) {
int testNumber = 1;
}
%>
...
<%=testNumber%>
然后,您将确切地得到此错误(在普通的Java类中也是如此!)。要解决此问题,您需要确保在相同的作用域中声明该变量,必要时使用默认值。
<%
int testNumber = 0;
if (someCondition) {
testNumber = 1;
}
%>
...
<%=testNumber%>
与具体问题无关,使用小脚本被视为poor practice。