JSTL在foreach项目中使用var

时间:2016-05-28 23:39:59

标签: java spring jsp foreach jstl

我有一个c:forEach,它会让我们说从20到24

<c:forEach var="i" begin="20" end="24">

并在其中,另一个c:forEach

<c:forEach items="${'${i}'}" var="entry">

因为我从控制器传递了多个这样的列表:

for(Team t : teams) {
String name = team.getTeamId() + "";
model.addObject(name, tableData);
}

其中team是对象,model是ModelAndView。控制器似乎工作正常,在我的JSP中我已经使用了一些数据。但我无法正确获取物品..我需要获得物品=&#34; 20&#34;当i var为20时,我真的不知道该怎么做了。有一些ID为20到24的团队,我已经检查过,错误显示NumberFormatExceptions或者不知道如何迭代所提供的项目。

提前致谢!

2 个答案:

答案 0 :(得分:2)

如果你只是想在第二个forEach中获得items =“20”,你可以试试这个:

<c:forEach var="i" begin="20" end="24">
<c:set var="tmp" value="${i}">
<c:forEach items="${tmp}" var="entry">
    ...
</c:forEach>
</c:forEach>

但似乎“items”必须是可迭代的数据。

答案 1 :(得分:1)

由于您将号码传递给JSTL foreach,因此您必须使用JSTL格式taglib格式化号码。因为JSTL不了解它是数字还是变种

JSP

上添加以下taglib
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

现在将数字传递给格式化:

<c:forEach items="<fmt:formatNumber value="${i}"/>" var="entry">

希望这会对你有所帮助。