Sébastien, I tried your original JSP code and was able to reproduce the problem you indicated in your first e-mail in JSTL 1.1 and Tomcat 5.5.
Then I made few changes to the JSP page as follows. I renamed some variables to make the code less ambiguous to read but the logic remains the same. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %> <c:import var="xml_collections" url="/p/test6/collections.xml" /> <x:parse xml="${xml_collections}" var="pCollections" scope="request"/> <c:import var="xml_books" url="/p/test6/books.xml" /> <x:parse xml="${xml_books}" var="pBooks" scope="request"/> <x:forEach select="$pCollections/collections/collection" var="vCollection"> <x:out select="name" /> <x:set select="id" var="cId"/> <ul> <x:forEach select="$pBooks/books/book[collection_id=$cId]" var="vBook"> <li><x:out select="$vBook/title" /></li> print test </x:forEach> </ul> </x:forEach> The code inside the inner x:forEach never executes. I think it never executes because the inner for loop , is not inside the context of the XML node in the outer for loop. If you look at the outer x:forEach loop the xml context node is $pCollections/collections/collection , and in the inner x:forEach $pBooks/books/book , does not fall under the context of the the external loop. If I'm not wrong, I think nesting of x:forEach works as long as the context of the nested x:forEach falls under that of the outer x:forEach. One solution to achieve the nested output would be to first combine the 2 XML documents by transforming them with XSLT to create a new XML document, then use the new XML document to achieve the nesting. I haven't tried such a transformation, but I will try it in case I'm right about nesting of x:forEach doesn't work with unrelated contexts. Are you saying that your original code worked in JSTL1.0 and is not working in JSTL1.1 ? Or you tried this code for the first time in JSTL1.1 and never in JSTL1.0? -Rashmi ----- Original Message ---- From: Sébastien Brodeur <[EMAIL PROTECTED]> To: Tag Libraries Users List <taglibs-user@jakarta.apache.org> Sent: Saturday, January 27, 2007 8:37:56 AM Subject: Re: Problem when a use a x:forEach into another x:forEach Hi Rashmi, Thank you for the answer. Have you been able to reproduce the error? Is my syntax wrong (I'm not thrill by Node context :-) ? Even if a try to use a <c:catch> block, I got no error. (I still have to look in the error log thou, first think Monday morning). 1) By using Servlet 2.4 jar, you mean are we using a Servlet 2.4container? If so, yes. 2) I already change the web.xml file to use servlet 2.4 3) I use a local version (I made sure the .tld file are the one coming with the taglibs JSTL 1.1 package.) of the taglibs declaration. So I use: <%@ taglib prefix="c" uri="/WEB-INF/c.tld" %> <%@ taglib prefix="x" uri="/WEB-INF/x.tld" %> instead of: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"; %> <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"; %> If a try the latest, I got a error. (Is it only namespace or some firewall may be blocking those???) Once again, thank you On 1/27/07, Rashmi Rubdi <[EMAIL PROTECTED]> wrote: > > Are you getting any errors in the log? > > When you upgrade from JSTL1.0 to JSTL1.1 you need to make some changes or > verify these changes: > > 1) Use Servlet 2.4 jar > > 2) Change web.xml to servlet 2.4 version: > > <web-app version="2.4" > xmlns="http://java.sun.com/xml/ns/j2ee"; > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; > xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee > http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd";> > > 3) Change tag library declarations to: > > <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"; %> > <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"; %> > Similarly upgrade other JSTL namespace URIs > > -Rashmi > > ----- Original Message ---- > From: Sébastien Brodeur <[EMAIL PROTECTED]> > To: taglibs-user@jakarta.apache.org > Sent: Friday, January 26, 2007 2:03:02 PM > Subject: Problem when a use a x:forEach into another x:forEach > > > I'm currently migrating my application from WebSphere 5 (JSTL 1.0) to > WebSphere 6 (JSTL 1.1), and so far, the XML taglibs give us a lot of > trouble. > > For example : > > > ------------------------------------------------------------------------------------------------------ > collections.xml > > <?xml version="1.0" encoding="ISO-8859-1"?> > <collections> > <collection> > <id>horror</id> > <name>Horror novel</name> > </collection> > <collection> > <id>scifi</id> > <name>Sci-Fi novel</name> > </collection> > </collections> > > > ------------------------------------------------------------------------------------------------------ > books.xml > > <?xml version="1.0" encoding="ISO-8859-1"?> > <books> > <book> > <collection_id>scifi</collection_id> > <title>Robots</title> > </book> > <book> > <collection_id>scifi</collection_id> > <title>The Moon is a Hashes Mistress</title> > </book> > <book> > <collection_id>scifi</collection_id> > <title>Spaceship Tropper</title> > </book> > <book> > <collection_id>horror</collection_id> > <title>This</title> > </book> > </books> > > > ------------------------------------------------------------------------------------------------------ > books.jsp > > <%@ taglib prefix="c" uri="/WEB-INF/c.tld" %> > <%@ taglib prefix="x" uri="/WEB-INF/x.tld" %> > > <c:import var="xml_collections" url="http://localhost/collections.xml";; /> > <x:parse xml="${xml_collections}" var="collections" scope="request"/> > > <c:import var="xml_books" url="http://www.localhost/books.xml";; /> > <x:parse xml="${xml_books}" var="books" scope="request"/> > > <x:forEach select="$collections/collections/collection" var="collection"> > <x:out select="$collection/name" /> > <ul> > <x:forEach select="$books/books/book[collection_id=$collection/id]" > var="book"> > <li><x:out select="$book/title" /></li> > </x:forEach> > </ul> > </x:forEach> > > > ------------------------------------------------------------------------------------------------------ > Output (WebSphere 5 using JSTL 1.0) > > Horror novel > <ul> > <li>This</li> > </ul> > > Sci-Fi novel > <ul> > <li>Robots</li> > <li>The Moon is a Hashes Mistress</li> > <li>Spaceship Tropper</li> > </ul> > > > ------------------------------------------------------------------------------------------------------ > > Output (WebSphere 6 using JSTL 1.1) > > Horror novel > <ul> > </ul> > Sci-Fi novel > <ul> > </ul> > > > Any idea how to do that without changing the structure of the two XML > files? > > Thank! > > -- > Sébastien Brodeur > [EMAIL PROTECTED] > Site Web : http://www.un-programmeur-php.ca/ > > > > > ____________________________________________________________________________________ > Cheap talk? > Check out Yahoo! Messenger's low PC-to-Phone call rates. > http://voice.yahoo.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Sébastien Brodeur [EMAIL PROTECTED] Site Web : http://www.un-programmeur-php.ca/ ____________________________________________________________________________________ Yahoo! Music Unlimited Access over 1 million songs. http://music.yahoo.com/unlimited --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]