JSP EL无法识别Java变量

时间:2017-03-01 20:02:29

标签: java jsp

在我的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次。

2 个答案:

答案 0 :(得分:2)

为了在这种情况下引用i,诀窍是在request.setAttribute("i", i);防御之前添加<tr>

答案 1 :(得分:0)

或者,您可以将变量放在pageContext中,使其成为此JSP的本地变量:

pageContext.setAttribute("i", i);