我有两个清单。一次只能有一个不能为空。
我想迭代那个非空的但我不想使用<c:choose>
因为我必须重复<c:when> and <c:otherwise>
中的代码
我该怎么办
如果list1不为null,则迭代列表1,否则为list2
<c:forEach items="${list1}" var="staffMember">
>html here that I don't want to repeat in my source code...<
答案 0 :(得分:2)
使用三元运算符访问<c:forEach>
中的正确列表:
<c:forEach items="${(empty list1) ? list2 : list1}" var="staffMember">
....
</c:forEach>
当然,它意味着两个列表都包含相同类型的实例。
答案 1 :(得分:1)
如果您不想使用,那么您可以尝试 并检查是否为空。这样的事情..
<c:if test="{not empty testList1}"> Execute First</c:if>
<c:if test="{not empty testList2}"> Execute Second</c:if>
希望它有所帮助。
答案 2 :(得分:0)
试试这个:
<c:choose>
<c:when test="${not empty testList1}">
<c:set var="TargetList" value="${testList1}"/>
</c:when>
<c:otherwise>
<c:set var="TargetList" value="$testList2}"/>
</c:choose>
<c:forEach items="${TargetList}" var="staffMember">
...
</c:forEach>