Ошибка итератора в MySSP JSP - PullRequest
1 голос
/ 22 марта 2010
TITLLE [...]
<logic:iterate id="listClient" name="Client">
 <table>
  <tr>
   <td>
    [...]
   </td>
  </tr>
 </table>
</logic:iterate>

Но у меня есть эта ошибка для моей второй итерации

javax.servlet.jsp.JspException: Невозможно создать итератор для этой коллекции

Ответы [ 3 ]

4 голосов
/ 22 марта 2010

Сообщение Cannot create iterator for this collection генерируется тегом iterate, когда он не может создать итератор для коллекции, которую вы ему передаете.

Тег извлекает объект из области видимости, используя указанное имя, в данном случае Client и начинает проверять, какой это тип:

  • массив объектов или примитивов;
  • java.util.Collection;
  • java.util.Iterator;
  • java.util.Map;
  • java.util.Enumeration.

Если он находит один из этих типов объектов, он извлекает итератор соответствующим образом. Если ничего из вышеперечисленного не совпадает, вы получаете javax.servlet.jsp.JspException: Cannot create iterator for this collection.

На данный момент я согласен с комментарием Адила Ансари: «Для меня нет никакого смысла, когда вы можете повторить один раз, но не снова».

Делаете ли вы что-то для bean-компонента Client между двумя тегами итератора (т.е. является ли представленный код непрерывным в отношении тегов итератора)? Может быть, вы перезаписали это чем-то, что не является коллекцией?

1 голос
/ 22 марта 2010

Вы используете тот же id, измените идентификатор второго

0 голосов
/ 13 декабря 2013

используйте этот тип итератора для решения этой проблемы .............

<tr>
    <td><b>RECD from :</b>&nbsp;&nbsp;&nbsp;&nbsp;
        <select name="vo.cuttingRecivedFrom" >
            <option value="">select</option>
            <logic:notEmpty name="storeList">
                <logic:iterate name="storeList" id="storeList1" indexId="count">
                    <option value="<bean:write name="storeList1" property="storeName"/>"><bean:write name="storeList1" property="storeName"/></option>
                </logic:iterate>
            </logic:notEmpty>
        </select>
    </td>
    <td><b>RECD in :</b>&nbsp;&nbsp;&nbsp;&nbsp;
        <select name="vo.cuttingRecivedFrom" >
            <option value="">select</option>
            <logic:notEmpty name="storeList">
                <logic:iterate name="storeList" id="storeList1" indexId="count1">
                    <option value="<bean:write name="storeList1" property="storeName"/>"><bean:write name="storeList1" property="storeName"/></option>
                </logic:iterate>
            </logic:notEmpty>
        </select>
    </td>
</tr> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...