5
<% 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>

4

4 回答 4

5

您是否尝试过 index 和 count 属性。这是显示示例的链接。

  <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

于 2012-12-28T06:29:15.733 回答
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>
于 2012-12-29T00:28:02.793 回答
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>
于 2012-12-28T07:04:54.393 回答
1

如果您已经有一个包含所有元素的列表,以及一个包含选定元素的子列表,您可以使用 Map:

<s:iterator var="currentElement" value="#session.selectedIndexes" >
   <s:property value="#session.completeHashMap[#currentElement]" />
</s:iterator>

有了一个列表,我还不清楚你想要实现什么。如果要为<s:if/>子列表中的每个元素(以及它存储值而不是索引的子列表)输入 ,例如

完整数组列表:{"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 中元素的索引(而不是值),

完整数组列表:{"a","b","c","d","e","f"}

选定索引:{2,3}

你可以get像这样:

<s:iterator var="currentElement" value="#session.selectedIndexes" >
   <s:property value="#session.completeArrayList[#currentElement]" />
</s:iterator>
于 2012-12-28T08:54:04.417 回答