我为分配编写了这段代码,但似乎没有正确执行。
<c:if test="${counter<fn:length(passangername[status.index])}">
<c:redirect url="confirmbooking.jsp" >
<c:param name="error" value="Invalid Data. Please try again!"/>
</c:redirect>
</c:if>
我打印计数器值以检查循环是否正常工作,并且在第一次迭代期间,它似乎工作正常,但计数器值未在第二次迭代中打印,依此类推。我知道第二次迭代发生,因为我可以看到其他东西打印。结果,&#34; if&#34;最后部分不起作用,这就是它需要修复的原因。注意:除此之外的所有其他工作正常。我在这做错了什么?请帮忙!
附加注意:如果所有输入仅为字母表,例如Saurav或John,则代码工作正常,但如果第二个输入是字母和数字的组合,则代码不起作用。
<c:set var="alphaupper" value="${['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']}"/>
<c:set var="alphalower" value="${['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ']}"/>
<c:forEach begin="0" end="${param.looper-1}" varStatus="status">
<c:set var="counter" value="0"/>
<c:out value="${passangername[status.index]}"/> <c:out value="length: ${fn:length(passangername[status.index])}"/><br>
<c:forEach var="i" begin="0" end="${fn:length(passangername[status.index])}" step="1">
<c:forEach var="j" begin="0" end="${fn:length(alphaupper)}" step="1">
<c:if test="${fn:substring(passangername[status.index], i, i + 1)==alphaupper[j] or fn:substring(passangername[status.index], i, i + 1)==alphalower[j]}">
<c:set var="counter" value="${counter=counter+1}"/>
</c:if>
</c:forEach>
</c:forEach>
<c:out value="counter: ${counter}"/><br>
<c:if test="${counter<fn:length(passangername[status.index])}">
<c:redirect url="confirmbooking.jsp" >
<c:param name="error" value="Invalid Data. Please try again!"/>
</c:redirect>
</c:if>
<c:set var="records" value="${records=records+1}"/>
</c:forEach>