Re: Var for c:forEach loop is always null
"Martin Cooper" <[email protected]>
| Newsgroups | gmane.comp.jakarta.taglibs.user |
|---|---|
| Message-ID | <[email protected]> |
On 12/11/06, Neil Aggarwal <[email protected]> wrote: > > Hello: > > According to the c:forEach doc, the var attribute of the > c:forEach tag has nested visibility. > > What does that mean? From the spec: "Nested scoped variables are only visible within the body of the action and are stored in "page" scope." I am trying to access the current object of the iteration > and always getting null. > > Here is an example: > > <%@page language="java" %> > <%@page import="java.util.*" %> > <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> > > <% > HashSet<String> mySet = new HashSet<String>(); > mySet.add("Str1"); > mySet.add("Str2"); > mySet.add("Str3"); > mySet.add("Str4"); > mySet.add("Str5"); > mySet.add("Str6"); > mySet.add("Str7"); > > request.setAttribute("mySet",mySet); > %> > > <c:forEach var="str" items="${mySet}"> > <% String str = (String)request.getAttribute("str"); %> > <p> > <%= str %> > </c:forEach> > > The value of str is always null. > > How can I fix this? Well, for starters, var is page scoped and not request scoped. But why are you using JSTL for your loop and then using scripting expressions to access the iterator values? If you use <c:out value="${str}"/> or even just ${str} you won't see this kind of problem. -- Martin Cooper Thanks, > Neil > > -- > Neil Aggarwal, (214)986-3533, www.JAMMConsulting.com > FREE! Eliminate junk email and reclaim your inbox. > Visit http://www.spammilter.com for details. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >