[code=JSP][/code]
 <c:forEach begin="1" end="2" step="1">
   <%
   Random random=new Random(); 
   session.setAttribute("number1",random.nextInt(101)); 
   session.setAttribute("number2",random.nextInt(101)); 
   session.setAttribute("operator",random.nextInt(4));
   int i=1; 
   String name1="number1"+i;
   String name2="number2"+i;
   String result="result"+i;
   String operator="operator"+i;
   i=i+1;
    %>
   <%=name1 %>
   </c:forEach>
这段代码输入的结果是number11 number11 ,好像“i=i+1;”这个没有执行,请各位帮忙解释一下!

解决方案 »

  1.   

    i是个局部变量
    <%!
    int i = 1;
    %>
    然后
    <c:forEach begin="1" end="2" step="1">
      <%
      Random random=new Random();
      session.setAttribute("number1",random.nextInt(101));
      session.setAttribute("number2",random.nextInt(101));
      session.setAttribute("operator",random.nextInt(4));
      String name1="number1"+i;
      String name2="number2"+i;
      String result="result"+i;
      String operator="operator"+i;
      i=i+1;
        %>
      <%=name1 %>
      </c:forEach> 
      

  2.   


    <%  
      session.setAttribute("problemSum",Integer.parseInt(request.getParameter("problemSum")));     
       %>
       <form action="statistics.jsp" method="post">
       <table border="1">
       <%
       int i=1;
        %>
       <c:forEach begin="1" end="${problemSum}" step="1">
       <%
       Random random=new Random(); 
       session.setAttribute("number1",random.nextInt(101)); 
       session.setAttribute("number2",random.nextInt(101)); 
       session.setAttribute("operator",random.nextInt(4));   
       
       String name1="number1"+i;
       String name2="number2"+i;
       String result="result"+i;
       String operator="operator"+i;
       
       i=i+1;
        %>
       <tr>
       <td><input type="hidden" name=name1 id=name1 value="${number1 }">${number1 }</td>
       <td>
       <c:choose>
       <c:when test="${operator==0}"><input type="hidden" name=operator id=operator value="+">+</c:when>
       <c:when test="${operator==1}"><input type="hidden" name=operator id=operator value="-">-</c:when>
       <c:when test="${operator==2}"><input type="hidden" name=operator id=operator value="*">*</c:when>
       <c:when test="${operator==3}"><input type="hidden" name=operator id=operator value="/">/</c:when>
       </c:choose>
       </td>
       <td><input type="hidden" name=name2 id=name2 value="${number2}">${number2}</td>
       <td>=</td>
       <td><input type="text" name=result id=result> </td>
       </tr>
       <%=name1 %>
       </c:forEach>
       <tr>
       <td colspan="5" align="center"><input type="submit" name="ok" value="提交"></td>
       </tr>
       </table>
       </form>
    这个我找到了, 那么上面的这段代码问题是不是出在上面为红色的“NAME1”上啊,我再另一个页面只能取到第一个式子中的数值。
      

  3.   

    <c:set var="i" value="1">
    <c:forEach begin="1" end="2" step="1"> 
      <% 
      Random random=new Random(); 
      session.setAttribute("number1",random.nextInt(101)); 
      session.setAttribute("number2",random.nextInt(101)); 
      session.setAttribute("operator",random.nextInt(4));    
      String name1="number1"+i; 
      String name2="number2"+i; 
      String result="result"+i; 
      String operator="operator"+i; 
      i=i+1; 
        %> 
      <%=name1 %> 
      </c:forEach>