问题描述
[code=JSP][/code]<c:forEachbegin="1"end="2"step="1"><%Randomrandom=newRandom();session.setAttribute("number1",random.nextInt(101));session.setAttribute("number2",random.nextInt(101));session.setAttribute("operator",random.nextInt(4));inti=1;Stringname1="number1"+i;Stringname2="number2"+i;Stringresult="result"+i;Stringoperator="operator"+i;i=i+1;%><%=name1%></c:forEach>这段代码输入的结果是number11number11,好像“i=i+1;”这个没有执行,请各位帮忙解释一下!
解决方案
解决方案二:
i是个局部变量<%!inti=1;%>然后<c:forEachbegin="1"end="2"step="1"><%Randomrandom=newRandom();session.setAttribute("number1",random.nextInt(101));session.setAttribute("number2",random.nextInt(101));session.setAttribute("operator",random.nextInt(4));Stringname1="number1"+i;Stringname2="number2"+i;Stringresult="result"+i;Stringoperator="operator"+i;i=i+1;%><%=name1%></c:forEach>
解决方案三:
<%session.setAttribute("problemSum",Integer.parseInt(request.getParameter("problemSum")));%><formaction="statistics.jsp"method="post"><tableborder="1"><%inti=1;%><c:forEachbegin="1"end="${problemSum}"step="1"><%Randomrandom=newRandom();session.setAttribute("number1",random.nextInt(101));session.setAttribute("number2",random.nextInt(101));session.setAttribute("operator",random.nextInt(4));Stringname1="number1"+i;Stringname2="number2"+i;Stringresult="result"+i;Stringoperator="operator"+i;i=i+1;%><tr><td><inputtype="hidden"name=name1id=name1value="${number1}">${number1}</td><td><c:choose><c:whentest="${operator==0}"><inputtype="hidden"name=operatorid=operatorvalue="+">+</c:when><c:whentest="${operator==1}"><inputtype="hidden"name=operatorid=operatorvalue="-">-</c:when><c:whentest="${operator==2}"><inputtype="hidden"name=operatorid=operatorvalue="*">*</c:when><c:whentest="${operator==3}"><inputtype="hidden"name=operatorid=operatorvalue="/">/</c:when></c:choose></td><td><inputtype="hidden"name=name2id=name2value="${number2}">${number2}</td><td>=</td><td><inputtype="text"name=resultid=result></td></tr><%=name1%></c:forEach><tr><tdcolspan="5"align="center"><inputtype="submit"name="ok"value="提交"></td></tr></table></form>这个我找到了,那么上面的这段代码问题是不是出在上面为红色的“NAME1”上啊,我再另一个页面只能取到第一个式子中的数值。
解决方案四:
<c:setvar="i"value="1"><c:forEachbegin="1"end="2"step="1"><%Randomrandom=newRandom();session.setAttribute("number1",random.nextInt(101));session.setAttribute("number2",random.nextInt(101));session.setAttribute("operator",random.nextInt(4));Stringname1="number1"+i;Stringname2="number2"+i;Stringresult="result"+i;Stringoperator="operator"+i;i=i+1;%><%=name1%></c:forEach>