code: @Override
      protected void prepare() throws JspTagException {
          // produce the right sort of ForEachIterator
          if (rawItems == null) {
              // if no items were specified, iterate from begin to end
              items = new ToEndIterator(end);
          } else if (rawItems instanceof ValueExpression) {
              deferredExpression = (ValueExpression) rawItems;
              Object o = deferredExpression.getValue(pageContext.getELContext());
              Iterator iterator = toIterator(o);
              if (isIndexed(o)) {
                  items = new IndexedDeferredIterator(iterator, deferredExpression);
              } else {
                  items = new IteratedDeferredIterator(iterator, new IteratedExpression(deferredExpression, getDelims()));
              }
          } else {
              items = toIterator(rawItems);
          }
      }
docs: our 'raw' items