如果s:iterator值中的计数值大于0,则启用/禁用“提交”按钮

时间:2014-12-16 15:33:03

标签: list jsp struts2 ognl

我的JSP中有以下代码,我使用Struts2

<s:iterator value="incentiveList" status="stat">
    <tr>
        <td><s:checkbox name="checkboxes[%{#stat.index}]" theme="simple" /></td>
        <td></td>
        <td><s:property value="marketingAmount" /> <s:hidden value="%{incentiveList.marketingAmount}" /></td>
        <td></td>
        <td></td>
        <td></td>
        <td><s:property value="marketingIncentive" /></td>
        <td></td>
        <td></td>
        <td></td>
        <td><s:property value="advertizingIncentive" /></td>
        <td></td>
        <td></td>
        <td><s:property value="channelPlacementIncentive" /></td>
        <td></td>
    </tr>
</s:iterator>
</table>
</br>
</br>
<s:if test="#status.index gt 0">
<s:submit id="submitButton" name="submit" value="Submit Incentives" onclick='return closeWindow()'/>
</s:if>
<s:else>
<s:submit id="submitButton" name="submit" value="Submit Incentives" onclick='return closeWindow()' disabled="true"/>
</s:else>

现在我想启用submitButton,如果上面的incentiveList有任何值,即count gt 0并实现这一点,我在下面的代码中使用

<s:if test="#status.index gt 0">
            <s:submit id="submitButton" name="submit" value="Submit Incentives" onclick='return closeWindow()'/>
            </s:if>
            <s:else>
            <s:submit id="submitButton" name="submit" value="Submit Incentives" onclick='return closeWindow()' disabled="true"/>
</s:else>

但它不起作用,如果遗漏了任何内容,请更正

1 个答案:

答案 0 :(得分:1)

如果incentiveList没有值,那么您不会获得任何内容,而不仅仅是按钮。你最终会得到无效的<table></table>代码,那么<s:if>也应该放在迭代器周围:

<s:if test="incentiveList.size()>0">
    <!-- iterator here -->

    <!-- buttons here -->
</s:if>

P.S:IteratorStatus是迭代器范围的(和迭代范围的),它不会存在于Iterator之外,因为它带有关于当前迭代元素的信息,所以它将毫无用处