2013-04-02 12 views
2
方法

假設這是在目前一個GSP:等效從GSP每個循環的給控制器

<g:each in="${prospectProjectStatuses}" var="statusObj"> 
    <%-- Number active and inactive projects --%> 
    <g:if test="${statusObj?.project?.active == true}"> 
     <g:set var="numActiveProjects" value="${numActiveProjects + 1}"/> 
    </g:if> 
    <g:else> 
     <g:set var="numInactiveProjects" value="${numInactiveProjects + 1}"/> 
    </g:else> 

    <%-- Number of hidden rows to show --%> 
    <g:if test="${!statusObj?.project?.id.intValue() && !canEdit && statusObj?.status?.id}"> 
     <g:set var="numProjectsToShow" value="${numProjectsToShow + 1}"/> 
    </g:if> 

    <g:if test="${statusObj?.project?.active && statusObj?.status?.id}"> 
     <g:set var="numStatusSet" value="${numStatusSet + 1}"/> 
    </g:if> 
</g:each> 

什麼是控制器的方法中的每個環的等效?

回答

3

調用您的集合中的每個()。因此,您的示例gsp的等價物將如下所示:

prospectProjectStatuses.each { statusObj -> 
    if (statusObj?.project?.active) { 
     numActiveProjects += 1 
    } else { 
     numInactiveProjects += 1 
    } 
    if (statusObj?.project?.id.intValue() && !canEdit && statusObj?.status?.id) { 
     numProjectsToShow += 1 
    } 
    if {statusObj?.project?.active && statusObj?.status?.id) { 
     numStatusSet += 1 
    } 
} 
+0

這非常快。謝謝......這將肯定有助於未來(只知道如何做到這一點w /在之前):) –

+0

@bob_cobb:也檢查收集和注入方法(等值的地圖和減少)。 –