Odd, I tried it a number of times without success. I even dumped the value
stack and the object in question was on the stack but the method was never
called in the iterator tag. Maybe it was the method name getErrorCount that
was causing the problem, not sure. The code I got working is below. It's not
too different from the original code I couldn't get working.

<s:iterator value="%{penaltyBreakdown.fileSubmissionErrors}"
status="errorStatus">
               <tr>
                   <s:if
test="%{!complianceCategory.name.equals(#currentCategory)}">
                       <s:push
value="%{penaltyBreakdown.fileSubmissionErrorCounts[complianceCategory]}">
                           <td style="vertical-align:top;"
rowspan="<s:property/>">
                               <s:property value="complianceCategory.name"/>
                           </td>
                       </s:push>
                   </s:if>

                   <td>
                       <s:property value="
nonCompliance.dataAggregate.element.name"/>
                   </td>

                   <td>
                       <s:property
value="nonCompliance.dataAggregate.countValue" />
                   </td>

                   <td>
                       <s:property value="errorMessage"/>
                   </td>

                   <s:if test="%{#errorStatus.first}">
                       <td style="vertical-align:top;"
                           rowspan='<s:property
value="penaltyBreakdown.fileSubmissionErrors.size()"/>'>
                           <s:property
value="penaltyBreakdown.calcFileSubmissionPenalty()"/>
                       </td>
                   </s:if>
               </tr>
               <s:set name="currentCategory"
value="complianceCategory.name"/>
</s:iterator>

Reply via email to