使用JSTL从xml文件中获取值的总和

时间:2013-10-07 16:21:42

标签: xml jstl

我在JSP页面中使用JSTL来读取xml文件

一切都很完美,我可以循环浏览文件并使用此代码读取值

<x:forEach select="$resultatXML/users/user" var="user">
        <tr>
            <td><x:out select="$user/@num"></x:out></td>
            <td><x:out select="$user/name"></x:out></td>
            <td><x:out select="$user/credit"></x:out></td>
        </tr>   
    </x:forEach>

我现在想要的是所有行的所有$ user / credit的总和,我无法做到,因为当我尝试使用

设置变量时它会给我错误
<x:set var="credit" select="$user/credit" scope="page"/>
<c:out value="${pageScope.credit }"/>

它给了我

[[credit: null]]

我现在想要的是所有学分的总和

1 个答案:

答案 0 :(得分:0)

您只需通过使用jstl core做加法部分即可。

在迭代之前,创建一个sum变量。

<c:set var="sum" value="0"/>

<x:forEach select="$resultatXML/users/user" var="user">
    <tr>
        ...
        ...
        ...

在jstl xml变量中提取用户信用

        <x:set var="userCredit" select="$user/credit"/>
        <td><x:out select="$userCredit"></x:out></td>
    </tr>

加到循环结束前的总和。 jstl将对该值执行适当的强制。

    <c:set var="sum" value="${sum + userCredit}"/>
</x:forEach>

最后,您可以只打印总和。

<c:out value="${sum}"/>