> -----Original Message----- > From: Jerry Rodgers [mailto:[EMAIL PROTECTED] > Sent: Thursday, December 02, 2004 12:11 PM > To: [EMAIL PROTECTED] > Subject: JSTL, Tiles PutList and Tomcat 5.028 > > > Hi All, > > > > I have a jsp page that I am trying to run on Tomcat that > currently works in > Weblogic. It appears the primary problem is that the forEach > tag is not > putting the variable menuItem into the pageContext attributes > and or it > thinks the menuItem is of type String. I am not sure where my actually > problem is (tiles, tomcat etc). > > > > > > It appears Tomcat is generating code when compiling the JSP > that isn't aware > of the type of class the > org.apache.struts.tiles.beans.SimpleMenuItem is - > it looks like at run time it thinks it is a String. > > > > > > A snippet of my JSP looks like this (jstl tags - partial): > > <core:forEach var="menuItem" varStatus="status" items="${topnav}"> > > <core:choose> > > <core:when test="${menuItem.tooltip=='help'}">
I do something similar in my code, and it works. It does look like it's not figuring out what type the menuItem is though.... <snip/> > > When I check the pageContext attributes via a debugger I > actually see an > item in the collection with the key "topnav" and it contains > a Vector of > items that appear to be of type SimpleMenuItem. However I > never see the item > called menuItem that I thought the forEach tag would place in > there for me. And I think the tutorial is agreeing with you: The forEach tag allows you to iterate over a collection of objects. You specify the collection via the items attribute, and the current item is available through a scope variable named by the item attribute. A large number of collection types are supported by forEach, including all implementations of java.util.Collection and java.util.Map. If the items attribute is of type java.util.Map, then the current item will be of type java.util.Map.Entry, which has the following properties: * key - the key under which the item is stored in the underlying Map * value - the value that corresponds to the key Arrays of objects as well as arrays of primitive types (for example, int) are also supported. For arrays of primitive types, the current item for the iteration is automatically wrapped with its standard wrapper class (for example, Integer for int, Float for float, and so on). Implementations of java.util.Iterator and java.util.Enumeration are supported but these must be used with caution. Iterator and Enumeration objects are not resettable so they should not be used within more than one iteration tag. Finally, java.lang.String objects can be iterated over if the string contains a list of comma separated values (for example: Monday,Tuesday,Wednesday,Thursday,Friday). Here's the shopping cart iteration from the previous section with the forEach tag: <c:forEach var="item" items="${sessionScope.cart.items}"> ... <tr> <td align="right" bgcolor="#ffffff"> ${item.quantity} </td> ... </c:forEach> The forTokens tag is used to iterate over a collection of tokens separated by a delimiter. from http://java.sun.com/webservices/docs/1.3/tutorial/doc/index.html > > > > Thanks for any help you may be able to provide, > > > > Jerry Rodgers > > > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]