在我的JSP中,我有以下集合,它应该为我的数据库中的每一行创建一个表行:
<%
int count = Controller.getRowCount();for(int i=0; i<count; i++) {%>
<tr class = resultRow>
<td><input type=text name='ID<%= i %>' form ='currentCharacter' value='${requestScope.resultRow[0]}'></td>
<td><input type=text name='Player<%= i %>' form ='currentCharacter' value='${requestScope.resultRow[1]}'></td>
<td><input type=text name='Character<%= i %>' form ='currentCharacter' value='${requestScope.resultRow[2]}'></td>
<td><input type=text name='Strength<%= i %>' form ='currentCharacter' value='${requestScope.resultRow[3]}'></td>
<td><input type=text name='Constitution<%= i %>' form ='currentCharacter' value='${requestScope.resultRow[4]}'></td>
<td><input type=text name='Dexterity<%= i %>' form ='currentCharacter' value='${requestScope.resultRow[5]}'></td>
<td><input type=text name='Intelligence<%= i %>' form ='currentCharacter' value='${requestScope.resultRow[6]}'></td>
<td><input type=text name='Wisdom<%= i %>' form ='currentCharacter' value='${requestScope.resultRow[7]}'></td>
<td><input type=text name='Charisma<%= i %>' form ='currentCharacter' value='${requestScope.resultRow[8]}'></td>
<td><button onclick = 'ShowInventory(<%= i %>)'>Inventory</button></td>
<td><input type=submit form = 'currentCharacter' value=Update name='Update<%= i %>'></td>
<td><input type=submit form = 'currentCharacter' value=Delete name='Delete<%= i %>'></td>
</tr>
<% } %>
在我的EL中,我试图获得与${requestScope.resultRow[0+(9*i)]}
相同的效果,但是,我的EL根本不会读取i
。在这种情况下如何引用i
?目前,在这种情况下,第一行重复4次。
答案 0 :(得分:2)
为了在这种情况下引用i
,诀窍是在request.setAttribute("i", i);
防御之前添加<tr>
。
答案 1 :(得分:0)
或者,您可以将变量放在pageContext中,使其成为此JSP的本地变量:
pageContext.setAttribute("i", i);