0

Struts イテレータタグを使用して、1 回の繰り返しでリストの 3 つの要素を取得しようとしています。

これは私が持っているものです。

<s:iterator status="stat" value="(secondResultSet.size()/3).{ #this}" >
   <s:property value="#stat.count" /> <!-- Note that "count" is 1-based, "index" is 0-based. -->
   <s:property value="%{secondResultSet.get(#stat.index).altId}"/>
   <s:property value="%{secondResultSet.get(#stat.index+1).altId}"/>
   <s:property value="%{secondResultSet.get(#stat.index+2).altId}"/>
</s:iterator>

私のリストには 18 の要素があり、1 回の反復で 3 つの要素を出力したいと考えています。そのため、リストの長さを 3 で割っています。したがって、ループは 6 回実行され、合計で 18 個の要素が出力されます。

この例では、私のリストに含まれる別の altId は次のとおりです: 41 - 58 (18)。ただし、私が持っているコードは次のように出力します

First Iteration: 41 42 43
Second Iteration: 42 43 44
Third Iteration: 43 44 45

そのため、カウンターが更新されていないようです。誰かがこれで私を助けることができますか?

4

1 に答える 1

0

これを行おうとしている他の誰かのために...

最善の方法は、次のようにクラスにリストを作成することです。

public void generateIteratorList()
{
    iterList = new ArrayList();
    int value = 0;
    for (int i = 0; i < (getSecondResultSet().size()/3); i++)
    {
        iterList.add(value);
        value+=3;
    }
}

次に、次のようにs:iteratorタグを使用します。

<s:iterator status="stat" value="iterList" >
   <s:property value="%{secondResultSet.get(top).altId}" />
   <s:property value="%{secondResultSet.get(top+1).altId}" />
   <s:property value="%{secondResultSet.get(top+2).altId}" />
</s:iterator>
于 2009-06-02T15:00:49.643 に答える