使用JSTL如何在forEach之前确定哪个变量为null

时间:2013-04-29 17:36:28

标签: java jsp jstl

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

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

3 个答案:

答案 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>