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で成功します。私は非常に混乱していて、どこにも助けを見つけることができません。