Java 如何在jsp中在表的顶部显示变量值?

Java 如何在jsp中在表的顶部显示变量值?,java,jsp,servlets,html-table,jstl,Java,Jsp,Servlets,Html Table,Jstl,我将一个对象从servlet传递到jsp,然后在jsp中迭代该对象,并在一个表中显示结果,如下所示。在迭代表时,我计算一些计数并将其存储在变量中 这是我的计数变量- kCount rCount totalCount 然后我在fieldset中显示这些计数变量的实际值,如下所示,它工作正常 <div> <!-- if I try to show the fieldset here, then I see all the values coming as zero. -

我将一个对象从servlet传递到jsp,然后在jsp中迭代该对象,并在一个表中显示结果,如下所示。在迭代表时,我计算一些计数并将其存储在变量中

这是我的计数变量-

kCount
rCount
totalCount
然后我在
fieldset
中显示这些计数变量的实际值,如下所示,它工作正常

<div>

    <!-- if I try to show the fieldset here, then I see all the values coming as zero. -->

<TABLE>
    <TR>
        <TH>VALUE1</TH>
        <TH>VALUE2</TH>
        <TH>VALUE3</TH>
        <TH>VALUE4</TH>
    </TR>

    <c:set var="kCount" value="0" scope="page"/>
    <c:set var="rCount" value="0" scope="page"/>
    <c:set var="totalCount" value="${CV.getValue().size()}" scope="page"/>

    <c:forEach var="i" begin="0" end="${CV.getValue().size() - 1}">
        <TR>
            <TD>
                ${CV.getValue().get(i)}
            </TD>
            <TD>
            ${CV.getHasR().get(i)}
            <c:if test="${CV.getHasR().get(i) == 'True'}">
                <c:set var="rCount" value="${rCount + 1}" scope="page"/>
            </c:if>
            </TD>
            <TD>
            ${CV.getType().get(i)}
            <c:if test="${CV.getType().get(i) == 'K'}">
                <c:set var="kCount" value="${k + 1}" scope="page"/>
            </c:if>
            </TD>
        </TR>
    </c:forEach>
</TABLE>

    <!-- I don't want to show the fieldset here, it should be shown at the top of the table -->
    <fieldset>
        <legend><b>Window</b></legend>
        <table>
            <tr>
                <th>VALUE2</th>
                <th>VALUE3</th>
            </tr>
            <tr>
                <td>Total rows:</td>
                <td>${totalCount}</td>
            </tr>
            <tr>
                <td>R Count:${rCount}</td>
                <td>K count:${kCount}</td>
            </tr>
        </table>
    </fieldset>
</div>

价值1
价值2
价值3
价值4
${CV.getValue().get(i)}
${CV.getHasR().get(i)}
${CV.getType().get(i)}
窗口
价值2
价值3
总行数:
${totalCount}
R计数:${rCount}
K计数:${kCount}
现在,如果我尝试复制此字段集,并尝试在
表的顶部显示,而不是在表的底部显示,那么我会看到所有值为零。我的主要目标是显示字段集中每个变量的值,但它应该显示在表的顶部,而不是底部


如果可能的话,你有什么想法吗?

这里至少有三种选择(我相信还有更多):

  • 在servlet中计算总数并将其传递给JSP进行显示
  • 在JSP中,首先循环数据以计算并显示总计,然后再次循环以显示数据
  • 在JSP中,在计算总计时循环并显示数据,然后使用jQuery或类似工具使用javascript将总计写回正确的位置

  • 您可以专门为此创建另一个
    for
    循环purpose@RafaEl:嗯。。除了您所建议的for循环之外,还有其他方法吗?通常,JSP应该用于表示。计算和其他业务逻辑通常属于servlet。您可以在那里计算所需的值,并将它们作为附加变量传递给JSP。@akiiddweeber djmorton绝对正确。您可以使用Javascript函数和css:P,因为如果您可以在JSP上进行计算,您也可以这样做