次の例を検討してください。
<% int testNumber = 1; %>
//Some HTML goes here
<%=testNumber%>
コンパイルエラーが発生します:
testNumber cannot be resolved to a variable
誰かが何が起こっているのか説明できますか?
変数のスコープを理解していることを確認する必要があります。これは、通常の Java クラスと同じようにスクリプトレットにあります。
たとえば、実際に持っている場合
<%
if (someCondition) {
int testNumber = 1;
}
%>
...
<%=testNumber%>
次に、まさにこのエラーが発生します (通常の Java クラスでも!)。これを修正するには、必要に応じてデフォルト値を使用して、変数がまったく同じスコープで宣言されていることを確認する必要があります。
<%
int testNumber = 0;
if (someCondition) {
testNumber = 1;
}
%>
...
<%=testNumber%>
具体的な問題とは関係ありませんが、スクリプトレットの使用は不適切な方法と見なされます。
設計上の問題はさておき、変数をグローバルとして宣言してみてください。
<%! int testNumber = 0; %>