我在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,......但我有一个例外。
答案 0 :(得分:2)
试试这个:(使用varStatus
属性)
<c:forEach items="${responseVector}" var="r" varStatus="status">
<c:out value="${status.index}"/>
</c:forEach>
${status.index}
会给你:
检索迭代当前轮次的索引。如果 迭代正在基础数组的子集上执行, java.lang.Collection或其他类型,返回的索引是绝对的 关于基础集合。指数从0开始。
更多信息here。
答案 1 :(得分: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/>
上面的代码完美地完成了工作!谢谢大家。