0

我在 JSTL 中有一个问题,我有一个来自 servlet 中设置的请求属性的数组对象。我要做的就是打印数组的索引。请问有什么帮助吗?这是代码:

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="/WEB-INF/tlds/Functions" prefix="func"%>
<table>
    <tr>
        <td>
            <b>k</b> = 
        </td>
        <td>
            <table border="1">
                <c:forEach var="i" begin="0" end="${responseVector.length}">
                <tr>
                    <td>k<sub>${i}</sub></td><!-- I wish to print the indexes here -->
                </tr>
                </c:forEach>
            </table>
        </td>
        <td>
            <table border="1">
                <c:forEach var="i" items="${responseVector}">
                <tr>
                    <td>${func:roundOff(i, 4)}</td>
                </tr>
                </c:forEach>
            </table>
        </td>
    </tr>
</table>
<br/>

在上面的代码中,responseVector 是一个双精度数组对象,但我希望第一个循环中的变量 i 在每次循环迭代时打印数组对象的索引。我的预期输出是:k0, k1, k2, ... 但我有一个异常。

4

2 回答 2

2

试试这个:(使用varStatus属性)

<c:forEach items="${responseVector}" var="r" varStatus="status">
  <c:out value="${status.index}"/>
</c:forEach>

${status.index}会给你:

检索当前轮次迭代的索引。如果在底层数组、java.lang.Collection 或其他类型的子集上执行迭代,则返回的索引相对于底层集合是绝对的。索引从 0 开始。

更多信息在这里

于 2012-10-19T23:16:58.023 回答
0

在 Paulius Matulionis 的建议的帮助下,我想通了。这是我使用的正确代码:

<%-- 
    Document   : DisplayResponseVector
    Created on : Sep 14, 2012, 5:33:41 PM
    Author     : Jevison7x
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="/WEB-INF/tlds/Functions" prefix="func"%>
<table>
    <tr>
        <td>
            <b>k</b> = 
        </td>
        <td> 
            <table border="1">
                <c:forEach var="i" items="${responseVector}" varStatus="sub">
                <tr>
                    <td>k<sub>${sub.count - 1}</sub></td>
                </tr>
                </c:forEach>
            </table>
        </td>
        <td>
             = 
        </td>
        <td>
            <table border="1">
                <c:forEach var="i" items="${responseVector}">
                <tr>
                    <td>${func:roundOff(i, 4)}</td>
                </tr>
                </c:forEach>
            </table>
        </td>
    </tr>
</table>
<br/>

上面的代码完美地完成了工作!感谢大家。

于 2012-10-19T23:46:53.437 回答