Reputation: 2269
Assuming this is in a gsp currently:
<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>
What's the equivalent of an each loop within the controller method?
Upvotes: 2
Views: 1631
Reputation: 96385
Call each() on your collection. So the equivalent for your example gsp would look like:
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
}
}
Upvotes: 3