<% System.out.println("These indexed shall be shown on gui "+(ArrayList)request.getSession().getAttribute("selectedIndexes")); %> // ArrayList value can be 2,3,5,9
<s:iterator var="itr" value="#session.completeArrayList" status="stat">
<s:if > //if stat.count value present in arraylist(selectedIndexes), then go to if loop
</s:if
</s:iterator>
我不知道如何在%{#stat.count}
循环中检查arraylist{selectedIndexes}
中的<s:if>
值。
我该怎么做
答案 0 :(得分:4)
您是否尝试过索引和计数属性?以下是显示示例的link。
<s:iterator status="status" value='%{0, 1}'>
Index: <s:property value="%{#status.index}" /> <br />
Count: <s:property value="%{#status.count}" /> <br />
</s:iterator>
将打印
指数:0 数:1 指数:1 数:2
答案 1 :(得分:4)
Struts2使用OGNL并且它有in
运算符。所以你可以像这样轻松检查:
<s:iterator var="itr" value="#session.completeArrayList" status="stat">
<s:if test="#stat.count in #session.selectedIndexes">
</s:if
</s:iterator>
答案 2 :(得分:1)
<s:iterator var="itr" value="#session.completeArrayList" status="stat">
<s:iterator var="ind" value="#session.selectedIndexes">
<s:if test="#stat.count == #ind">
I found #stat.count in selectedIndexes ArrayList
</s:if>
</s:iterator>
</s:iterator>
答案 3 :(得分:1)
如果您已经拥有所有元素的List以及包含所选元素的子列表,您可以使用Map:
<s:iterator var="currentElement" value="#session.selectedIndexes" >
<s:property value="#session.completeHashMap[#currentElement]" />
</s:iterator>
使用List,我不清楚你想要实现什么。如果要为子列表中的每个元素输入<s:if/>
(以及它存储值而不是索引的子列表),例如
completeArrayList:{“a”,“b”,“c”,“d”,“e”,“f”}
selectedIndexes:{“c”,“d”}
然后您可以像这样使用contains
:
<s:iterator var="currentElement" value="#session.selectedIndexes" >
<s:if test="%{#session.completeArrayList.contains(#currentElement)}">
Selected Index with value
<s:property value="#currentElement" />
found on bigList
</s:if>
</s:iterator>
如果selectedIndexes存储了ArrayList中元素的INDEXES(而不是值),
completeArrayList:{“a”,“b”,“c”,“d”,“e”,“f”}
selectedIndexes:{2,3}
你可以get
他们这样:
<s:iterator var="currentElement" value="#session.selectedIndexes" >
<s:property value="#session.completeArrayList[#currentElement]" />
</s:iterator>