如果使用迭代器status,则使用Struts2标记
我从Struts2开始,我需要帮助解决IF标签上的一个问题 这是我的密码如果使用迭代器status,则使用Struts2标记,struts2,tags,iterator,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 Arra
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>();
private List parts=new ArrayList();
在我的JSP中,我希望根据qty[]值或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)
提前感谢您的帮助和广告
Mickeel不需要警告标志
之前的
,而且您有打字错误警告标志
应该是警告标志
<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
将表达式作为值
另请参见此链接:。嗨,Aleksandr,我应用了你的建议,但我得到了相同的结果。@OurtaauMickael:你也需要从elseif中删除
%{…}
。第一次就错过了。查看更新。它可以正常工作。非常感谢。我在struct文档中没有找到关于IF标记中的attribute“test”的任何信息。我什么时候放%{}?#是什么意思?。6年前我使用了JSTL标签,但我忘记了所有关于这方面的知识。如果你有一首短裙或者我的…@OurtaauMickael:更新了我的答案。别忘了接受/赞成答案。@OurtaauMickael为什么不接受这个答案作为正确答案?如果您需要更多帮助,请发表评论!!!