我正试图从我的朋友列表中检索20条记录,其名称以"J"开头.但是,我意识到JSTL没有中断.所以我尝试使用计数来跟踪记录.我遇到错误'PWC6031:Unterminated <c:set tag'
<c:set var="count" value="0" scope="page">
<c:forEach items="${friendsList}" var="user">
<c:if test="${count < 20}">
<c:set var="string1" value="${fn:substring(user.name, 0, 1)}" />
<c:if test="${fn:startsWith(string1,'J')}">
<tr>
<td><c:out value="${user.name}" /></td>
<td><img src='https://graph.facebook.com/<c:out value="${user.id}"/>/picture' />
</td>
</tr>
</c:if>
</c:if>
<c:set var="count" value="${count + 1}" scope="page"/>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
有没有办法可以从count变量中检索值?如果没有,是否有另一种方法可以突破循环以达到我想要的效果?谢谢.
在解决了我遇到的错误之后,我设法利用count变量来列出我想要的内容.我在原始编码中混淆了"计数"编码的顺序.这就是我现在所拥有的,正在努力,感谢大家的帮助!
<c:set var="count" value="0" scope="page" />
<c:forEach items="${friendsList}" var="user">
<c:if test="${count < 20}">
<c:set var="string1" value="${fn:substring(user.name, 0, 1)}" />
<c:if test="${fn:startsWith(string1,'J')}">
<tr>
<td><c:out value="${user.name}" /></td>
<td><img src='https://graph.facebook.com/<c:out value="${user.id}"/>/picture' /></td>
</tr>
<c:set var="count" value="${count + 1}" scope="page" />
</c:if>
</c:if>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
你做得比必要困难.以下是比你更好的替代解决方案IMO,从最差到最好的解决方案:
varStatus="loopStatus"属性c:forEach可以使用知道循环内迭代的索引${loopStatus.index}.这允许删除您的count属性.end="19"属性c:forEach准备控制器中的列表(甚至在检索用户时在SQL查询中)以确保它最多只有20个元素:
users = users.subList(0, Math.min(users.size(), 20));
Run Code Online (Sandbox Code Playgroud)