2009-06-02 3 views
0

Я использую тег Struts iterator и пытаюсь получить 3 элемента из своего списка в 1 итерации.struts2 iterator tag help

Это то, что у меня есть.

<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 элементов и в одной итерации я хочу распечатать 3 элемента. Вот почему я разделяю длину списка на 3. Так цикл будет работать 6 раз ... в общей сложности распечатывает 18 элементов.

Для этого примера другой altId мой список содержит: 41 - 58 (18). Однако в коде, который я напечатал, есть следующие

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

Так что, похоже, счетчик не обновляется. Может кто-то помочь мне с этим?

ответ

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: итератор тег как так:

<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> 
Смежные вопросы