0

ここJSTLに問題があります。サーブレットに設定されたリクエスト属性からの配列オブジェクトがあります。私がやりたいのは、配列のインデックスを出力することだけです。何か助けてください?コードは次のとおりです。

<%@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はdouble配列オブジェクトですが、最初のループの変数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

PauliusMatulionisの提案から少し助けを借りてそれを理解しました。これが私が使用した正しいコードです:

<%-- 
    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 に答える