有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

要应用于列表的java JSTL if条件

我必须通过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>

输出页面是 enter image description here

列表中的值是

[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 Passive,product=Trading,measure=Settlement,currency=MZM,LimitateExcess=0,excessAmount=258603000,excessDate=2012年10月2日,maxRiskAmount=258603000,openDate=2013年4月5日,daValueForUser=9,maxRiskDate=2012年10月2日]],CustomerExcessUIBean[clientName=Citibank Na Karachi Br,cif=4,ultimateParent=HSBC Holdings Plc,excessList=[ExcessUIBean][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日]]

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


共 (3) 个答案

  1. # 1 楼答案

    试着像这样放置前面的元素

    <c:set var="clientName" value="${clientName}" />'
    

    然后比较前面的元素和现在的元素

    SEE HERE

  2. # 2 楼答案

    如果我正确地理解了您的问题(如果我没有理解,我很抱歉),您要做的是在内部循环中(在${customerExcess.excessList}上循环的那一个),对于第一次迭代,您只想打印出客户名称。对于其他迭代,您需要一个空的<td>。如果是这种情况,那么您可以使用循环中的状态变量和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>
    
  3. # 3 楼答案

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