Bugzilla bug report #706 reports that you will get a JSP page exception
when you try to iterate over collection that contains null values.  This
is caused by the fact that the JSP page context refuses to allow null
attributes.  The bug report suggests one alternative (although the
proposed implementation has problems), but I would like to solicit
suggestions and thoughts on what the correct behavior should be.

Here are the alternatives that I can think of:

(1)  No change -- document a restriction in the usage notes
     on the <logic:iterate> tag.

(2)  Silently skip this element of the iteration, with no notice
     to the surrounding page.  The total number of times through
     the loop, from the perspective of the page, will be less than
     the size of the underlying collection.

(3)  Do not skip this element, but don't add it to the page context
     either.  The page can then use <logic:notPresent> to test for
     whether the item is actually there or not.

(4)  Do not skip this element, but insert a reference to a dummy
     object instead of the null.  This is likely to cause class cast
     exceptions, and is unlikely to be practical when the iteration
     explicitly includes a "type" attribute.

(5)  Other alternatives I have not thought of?

All of the listed alternatives have their problems, but I am currently
leaning towards (1).  Comments?  Suggestions?

Craig McClanahan


Reply via email to