gpt4 book ai didi

java - jSTL 中的 if/else 逻辑

转载 作者:行者123 更新时间:2023-12-01 14:43:08 24 4
gpt4 key购买 nike

我试图确保对象列表不为空并且其中至少有一项。请告诉我以下代码片段我做错了什么。

<c:if test=" ${ (not empty educations) && (fn:length(educations) ge 1) }">
<c:forEach items="${educations}" var="edu">
<div class="educations">
<label>Position</label><input type="text" name="${ edu.index }" /><br/>
<label>School</label><input type="text" name="${ edu.school }" /><br/>
<label>Degree</label><input type="text" name="${ edu.degree }" /><br/>
<label>GPA</label><input type="text" name="${ edu.scored }" /><br/>
<label>Start Date</label><input type="text" name="${ edu.startDate }" /><br/>
<label>End Date</label><input type="text" name="${ edu.endDate }" /><br/>
</div>
</c:forEach>
</c:if>

我通过调试发现它直接停在if语句处,即使教育列表中有项目,里面的hmlt标签也没有渲染

最佳答案

您是否正确包含了 JSTL 函数?

<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>  

并在访问任何变量之前添加前缀 requestScope。

<c:if test=" ${not empty requestScope.educations}">
<c:forEach items="${requestScope.educations}" var="edu">
<div class="educations">
<label>Position</label><input type="text" name="${ edu.index }" /><br/>
<label>School</label><input type="text" name="${ edu.school }" /><br/>
<label>Degree</label><input type="text" name="${ edu.degree }" /><br/>
<label>GPA</label><input type="text" name="${ edu.scored }" /><br/>
<label>Start Date</label><input type="text" name="${ edu.startDate }" /><br/>
<label>End Date</label><input type="text" name="${ edu.endDate }" /><br/>
</div>
</c:forEach>
</c:if>

如果只进行检查会更好

您的意图是使用 then 迭代列表,最好知道当提供的项目为空时它不会运行。如果 直接被该检查包围,则该检查完全是多余的。

关于java - jSTL 中的 if/else 逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15738900/

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