Struts2标签如果使用IteratorStatus

时间:2013-02-20 08:12:59

标签: struts2 tags iterator

我从Struts2开始,我需要帮助来解决我的IF标签上的问题。

这是我的代码

public class InventoryRow {
    private String title;
    private int[] qty = new int[5];
    private boolean[] warningFlag = new boolean[5];
}

在Action类中,我有这个属性:

private List<InventoryRow> parts = new ArrayList<InventoryRow>();

在我的JSP中,我想根据qty [] value或warningFlag []值应用不同的样式。

<s:iterator value="parts" var="product">  
    <tr>
        <td><s:property value="title" /></td>
        <s:iterator value="qty" var="val" status="idStatus">  
            <td class="qty <s:if test="#val==-99"> none</s:if>
                   <s:elseif test="#warningdFlag[%{#idStatus.index}] == true"> warning</s:elseif>
                           " >
                <s:property />
            </td>     
        </s:iterator> 
   </tr> 
</s:iterator>

第一个测试(等于-99)有效。但不是第二个(使用warningFlag)

提前感谢您的帮助和广告。

迈克尔

1 个答案:

答案 0 :(得分:1)

不需要#之前的warningFlag,并且您有错误warningdFlag应为warningFlag

<s:iterator value="parts">  
    <tr>
        <td><s:property value="title" /></td>
        <s:iterator value="qty" var="val" status="idStatus">  
            <td class="qty <s:if test="#val==-99"> none</s:if>
                   <s:elseif test="warningFlag[#idStatus.index]"> warning</s:elseif>" >
                <s:property />
            </td>     
        </s:iterator> 
   </tr> 
</s:iterator>

不需要在%{...}属性中获取状态索引的test表示法,因为test将表达式作为值。

另请参阅此链接:http://struts.apache.org/development/2.x/docs/ognl.html