This week's book giveaway is in the OCMJEA forum.
We're giving away four copies of OCM Java EE 6 Enterprise Architect Exam Guide and have Paul Allen & Joseph Bambara on-line!
See this thread for details.
The moose likes Struts and the fly likes bean:define not working in logic:iterate Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCM Java EE 6 Enterprise Architect Exam Guide this week in the OCMJEA forum!
JavaRanch » Java Forums » Frameworks » Struts
Bookmark "bean:define not working in logic:iterate" Watch "bean:define not working in logic:iterate" New topic
Author

bean:define not working in logic:iterate

Nina Anderson
Ranch Hand

Joined: Jul 18, 2006
Posts: 148
Hey Guys,

I'm trying to iterate through contents of a list that has a sub list inside it. I noticed that my JSP only displays the first list and contents of it's sub list. I'm using <bean efine> between the parent list and it's child list.

It seems like when the JSP executes the <bean efine> the first time in the loop it's fine. But when it comes across the <bean efine> the second time it does not execute it.

Do anyone know why?!?! ...and how can I get around this?

Here's my code:
<!-- GET Sub Category List -->
<logic:iterate id="subCategoryCbo" name="subCatList">

<bean efine id="subCatName" property="serviceSubCategoryName" name="subCategoryCbo" />
<bean efine id="subCatCode" property="serviceSubCategoryCode" name="subCategoryCbo" />
<bean efine id="subCatId" property="serviceSubCategoryId" name="subCategoryCbo" type="java.lang.Integer" />
<bean efine id="serviceMapList" property="serviceMap" name="serviceCategoryDto" />

<p><%=subCatName.toString().toUpperCase() %></p>
<table>
<!-- GET Service Map List -->
<logic:iterate id="serviceMap" name="serviceMapList">
<%
String ID = subCatId.toString();
%>
<logic:equal property="key" name="serviceMap" value="<%=ID%>">
KEY: <bean:write property="key" name="serviceMap" />
ID: <bean:write property="serviceSubCategoryId" name="subCategoryCbo" />
<bean efine id="serviceList" name="serviceMap" property="value"/>
<!-- GET Services -->
<% int index = 0; %>
<logic resent name="serviceList">
<logic:iterate id="serviceCbo" name="serviceList">
<% index++; if(index == 1) { out.print("<TR>"); } %>
<TD>
<html:multibox property="selectedHairService">
<bean:write property="serviceCode" name="serviceCbo" />
</html:multibox>
<bean:write property="serviceName" name="serviceCbo" />
</TD>
<%if(index%3 == 0) { out.print("</TR>"); index = 0;} %>
</logic:iterate>
</logic resent>
</logic:equal>
</logic:iterate>
</table>
<p> </p>
<p> </p>
</logic:iterate>

Pls...HeLP!!!
Nina Anderson
Ranch Hand

Joined: Jul 18, 2006
Posts: 148
does anyone know what the alternative to using <bean efine> in an iteration <logic:iterate> is?
danny liu
Ranch Hand

Joined: Jan 22, 2004
Posts: 185
The substitute can be <c:set var>, which is from jstl. I would suggest that you use the combination of struts tags and jstl tags, or struts-el tags.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: bean:define not working in logic:iterate