Man, this is really sick ;-). If I'm understanding you, maybe this will work (or
maybe not...):
var products = new Array();
<logic:iterate id="productBeans" name="products" indexId="i">
var productBeans<bean:write name="i"/> = new Array();
<logic:iterate id="productBean" name="productBeans" indexId="j">
productBeans<bean:write name="i"/>[<bean:write name="j"/>] = ["<bean:write
name="productBean" property="productName"/>",
"<bean:write
name="productBean" property="productId"/>"];
</logic:iterate>
products[<bean:write name="i"/>] = productBeans<bean:write name="i"/>;
</logic:iterate>
Quoting Rick Col <[EMAIL PROTECTED]>:
> Hi,
>
> I did the following, but the results were not
> displayed.
> Whats wrong with my code?
>
> >>>>>>>>>>
> products is a collection of ArrayLists, every
> arrayList contains
> a list of ProductBeans, ProductBean has productName
> and productId properties.
>
> products are retrieved in action class and are put
> into session scope:
> session.setAttribute("products", products);
>
> var productsArray = new Array();
>
> <logic:iterate id = "aList" name = "products" indexId
> = "idx">
> <logic:iterate id = "ProductBean" name = "aList"
> indexId = "index">
> productsArray[<%=idx%>][<%=index%>]
> = new Array(<bean:write name = "ProductBean"
> property = "productName"/>,
> <bean:write name = "ProductBean"
> property = "productId"/>);
> </logic:iterate>
> </logic:iterate>
> >>>>>>>>>>>>>
>
> Thanks in advance.
>
> rick
>
>
>
> --- Rick Col <[EMAIL PROTECTED]> wrote:
> > More questions about the following:
> >
> > 1) It says in logic tags reference:
> > id: "The name of a page scope JSP bean that will
> > contain the current element of the collection on
> > each
> > iteration, if it is not null."
> >
> > So, it means myList ArrayList should conform
> > to JavaBean routines, is that right? For example:
> >
> > If I have a List4Js class, it has to have
> > getters/seters
> > for getting/setting ArrayLists:
> >
> > ArrayList myList = List4J.getResultList();
> >
> > And the elements of an ArrayList should be a bean
> > too.
> >
> > 2) If I want to get a collection of arraylists, I
> > can
> > use the <logic:iterate> tag as following:
> >
> > <logic:iterate id="jsList" name="listForJavaScript"
> > indexId="idx">
> > <logic:iterate id="myBean" name="jsList"
> > indexId="index">
> > jsArray[<%=idx%>][<%=index%>] =
> > <%=myBean.getYourValue()%>;
> > </logic:iterate>
> > </logic:iterate>
> >
> > Since JavaScript Array usually has the following
> > form:
> > myArray = new Array("sample", 1);
> >
> > Do I need to conform to the above routine to create
> > an
> >
> > JavaScript Array element in order to correctly
> > display
> > the results?
> >
> > regards,
> >
> > rick
> >
> >
> >
> >
> >
> >
> > --- James Childers <[EMAIL PROTECTED]> wrote:
> > > You'll need to do a couple of things:
> > >
> > > 1) (Assuming you're using Struts, of course.)
> > Create
> > > your Java array/collection/whatever in the Action
> > > that gets hit before your JSP page:
> > > List myList = new ArrayList();
> > > // populate the list, la la la
> > > request.addAttribute("listForJavascript",
> > myList);
> > > return mapping.findForward("success"); // Takes
> > > you to, say, bongabonga.jsp
> > >
> > > 2) In bongabonga.jsp:
> > > <head>
> > > <script type="text/javascript">
> > > var jsArray = new Array(); // Do you have to
> > init
> > > this? I don't remember.
> > > <logic:iterate id="jsList"
> > > name="listForJavaScript" indexId="idx">
> > > jsArray[<%=idx%>] = <%=jsList.getYourValue()%>;
> > > </logic:iterate>
> > > </script>
> > >
> > > 3) Debug. This is all from memory. I'm sure there
> > > are some glaring errors here, but this is the
> > > general flow.
> > >
> > > -= J
--
Kris Schneider <mailto:[EMAIL PROTECTED]>
D.O.Tech <http://www.dotech.com/>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]