1

次の例を検討してください。

<% int testNumber = 1; %>
//Some HTML goes here
<%=testNumber%>

コンパイルエラーが発生します:

testNumber cannot be resolved to a variable

誰かが何が起こっているのか説明できますか?

4

2 に答える 2

3

変数のスコープを理解していることを確認する必要があります。これは、通常の Java クラスと同じようにスクリプトレットにあります。

たとえば、実際に持っている場合

<%
   if (someCondition) {
       int testNumber = 1;
   }
%>

...

<%=testNumber%>

次に、まさにこのエラーが発生します (通常の Java クラスでも!)。これを修正するには、必要に応じてデフォルト値を使用して、変数がまったく同じスコープで宣言されていることを確認する必要があります。

<%
   int testNumber = 0;

   if (someCondition) {
       testNumber = 1;
   }
%>

...

<%=testNumber%>

具体的な問題とは関係ありませんが、スクリプトレットの使用は不適切な方法と見なされます。

于 2012-05-01T16:27:52.633 に答える
-1

設計上の問題はさておき、変数をグローバルとして宣言してみてください。

<%! int testNumber = 0; %>
于 2012-05-01T16:32:38.430 に答える