0

我有两个清单。一次只能有一个不能为空。

我想迭代一个不为空但我不想使用的<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...<
4

3 回答 3

2

使用三元运算符访问 中的正确列表<c:forEach>

<c:forEach items="${(empty list1) ? list2 : list1}" var="staffMember">
    ....
</c:forEach>

当然,这意味着两个列表都包含相同类型的实例。

于 2013-04-29T17:50:53.787 回答
1

不想用的话可以试试。
并检查是否为空。像这样的东西..

    <c:if test="{not empty testList1}"> Execute First</c:if>  
    <c:if test="{not empty testList2}"> Execute Second</c:if>

希望能帮助到你。

于 2013-04-29T17:42:54.927 回答
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>
于 2013-04-29T17:52:11.987 回答