gpt4 book ai didi

jsp - 跳出 JSP/JSTL 中的 forEach 循环

转载 作者:行者123 更新时间:2023-12-03 17:50:50 30 4
gpt4 key购买 nike

我有一组具有某些属性的对象。一个属性只能是两种类型 Type1Type2 .

我想要做的就是检查一个对象是否具有 Type1 的属性.

我为此使用以下代码:

<c:set var="properties" value="${obj.getProperties()}"/>
<c:set var="hasPropertyOfType1" value="false"/>
<c:forEach var="i" begin="0" end="${fn:length(properties) - 1}">
<c:if test="${properties.get(i).isOfType1() eq true}">
<c:set var="hasPropertyOfType1" value="true"/>
</c:if>
</c:forEach>

上面的代码实现了我想要的但效率非常低,因为对象可能具有的属性数量非常多。

所以我的问题是如何在设置 hasPropertyOfType1 后跳出 forEach 循环等于 true .

我想到的一些方法,我不知道如何实现(或者它们甚至是可能的)是:

1:向 forEach 循环添加一个条件,这将停止循环。
2:将循环内的索引值增加到大于 fn:length(properties)的值.
3:如果可能,使用break语句。

我已经搜索了很多,但仍然无法弄清楚这一点。提前致谢。

最佳答案

JSTL 标记用于迭代集合。
它不打算搜索集合。

您也可以使用 <c:choose><c:when><c:otherwise>这里有一个例子。
你也可以使用很多

<c:forEach 
var="List"
items="${requestScope.DetailList}"
varStatus="counter"
begin="0">

<c:choose>
<c:when test="${List.someType == 'aaa' || 'AAA'}">
<!-- continue -->
</c:when>
<c:otherwise>
Do something...
</c:otherwise>
<c:choose>
</c:forEach>

希望我有帮助

关于jsp - 跳出 JSP/JSTL 中的 forEach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21953962/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com