我有一个 JSTL 循环,我试图检查给定变量是否为空或不具有动态变量名称。当我将 c:set 与页面范围一起使用时,if 语句无法访问该变量。但是,当我使用 设置它时<% pageCotnext.setAttribute(...); %>
,该变量可用。
<%
pageContext.setAttribute("alphaParA", "test");
pageContext.setAttribute("alphaParF", "test");
int i = 0;
%>
<ul class="alphadex_links">
<c:forEach var="i" begin="0" end="25" step="1" varStatus="status">
<c:set var="currentLetter" scope="page">&#${i+65}</c:set>
<c:set var="currentPar" scope="page">alphaPar${currentLetter}</c:set>
<% pageContext.setAttribute("currentPar", "alphaPar" + (char)('A' + i++)); %>
<li>
<c:choose>
<c:when test="${not empty pageScope[currentPar]}">
当我删除 pageContext.setAttribute 块时,测试总是失败,但是它对 A 和 F 成功,因为它应该在块中。我很困惑,在任何地方都找不到帮助。