Java 在列表上应用JSTL if条件

Java 在列表上应用JSTL if条件,java,jsp,jstl,Java,Jsp,Jstl,我有一个列表,我正在传递给JSTL <c:forEach items="${actionBean.excessList.newActiveCustomerExcessUIList}" var="customerExcess"> <c:set var="clientName" value="${customerExcess.clientName}" scope="page"></c:se

我有一个列表,我正在传递给JSTL

<c:forEach items="${actionBean.excessList.newActiveCustomerExcessUIList}"                   var="customerExcess">
 <c:set var="clientName" value="${customerExcess.clientName}"                       scope="page"></c:set>
<c:set var="ultimateParent" value="${customerExcess.ultimateParent}"
                        scope="page"></c:set>
 <c:forEach items="${customerExcess.excessList}" var="excess">
    <tr>
    <td><c:out value="${clientName}"></c:out></td>
    <td><c:out value="${ultimateParent}"></c:out></td>
    <td><c:out value="${excess.excessDa }"></c:out></td>

输出页面是

列表中的值为

[CustomerExcessUIBean[clientName=Golden Eagle Retail Grp Ltd,cif=1,ultimateParent=HSBC Holdings Plc,excessList=[ExcessUIBean][notifyDaHolder=true,excessId=1,excessDa=DA6,status=New被动式,product=Vostro,measure=Primary,currency=USD,LimitateExcess=5000000,excessAmount=95515540.48,excessDate=2012年10月2日,maxRiskAmount=95515540.48,openDate=2012年10月2日,daValueForUser=9,maxRiskDate=2012年10月2日],ExcessUIBean[notifyDaHolder=true,excessId=7,excessDa=DA6,status=New被动式,product=Vostro,measure=Primary,currency=USD,LimitateExcess=5000000,excessAmount=95515540.48,excessDate=2012年10月2日,maxRiskAmount=95515540.48,openDate=2012年10月2日,daValueForUser=9,maxRiskDate=2012年10月2日],ExcessUIBean[notifyDaHolder=true,excessId=9,excessDa=DA7,status=New被动式,product=Trading,measure=结算,currency=MZM,LimitateExcess=0,excessAmount=258603000,excessDate=2012年10月2日,maxRiskAmount=258603000,openDate=2013年4月5日,daValueForUser=9,maxRiskDate=2012年10月2日]],CustomerExcessUIBean[客户名称=花旗银行卡拉奇分行,到岸价格=4,最终母公司=汇丰控股有限公司,例外列表=[例外列表][notifyDaHolder=true,excessId=4,excessDa=-,status=New被动式,product=Vostro,measure=Primary,currency=USD,LimitateExcess=5000000,excessAmount=95515540.48,excessDate=2012年10月2日,maxRiskAmount=95515540.48,openDate=2012年10月2日,daValueForUser=9,maxRiskDate=2012年10月2日]]

问题是
当客户端名称与上面的名称相同时,该字段应显示为空..就像按客户端名称分组一样。

如果我正确理解您的问题(如果我没有理解,我很抱歉),您要做的是在内部循环内(循环
${customerExcess.excessList}
),对于第一次迭代,您只希望打印出客户名称。对于其他迭代,您需要一个空白的
。如果是这种情况,则可以使用循环中的状态变量和
If
语句来处理,如下所示:

<c:forEach items="${customerExcess.excessList}" var="excess" varStatus="status">
  <tr>
    <td>
      <c:if test="${stat.first}">
        <c:out value="${clientName}"></c:out>
      </c:if>        
    </td>
    <td><c:out value="${ultimateParent}"></c:out></td>
    <td><c:out value="${excess.excessDa }"></c:out></td>

尝试像这样放置上一个元素

<c:set var="clientName" value="${clientName}" />'
'
然后将上一个元素与当前元素进行比较


我想在后端创建平面对象结构,例如
clientName
clientnamesplay
ultimateParent
等,并使用您需要的数据(如unique
clientnamesplay
)填充此bean。毕竟,您可以显示一个
ArrayList
,而不是嵌套列表