?
Solved

NESTING <LOGIC:ITERATE> <LOGIC:PRESENT> TAGS

Posted on 2004-09-23
7
Medium Priority
?
1,198 Views
Last Modified: 2008-02-01

I have a page that uses a number of tables. I also have a style sheet in that jsp page. I have one class that show's items on screen but not on print preview, and another that shows items on print preview but not the screen. I am getting an iterator error or some sort, and others times, no error at all: it simply doesn't work.

I have the following

<LOGIC:PRESENT NAME="class1">
<LOGIC:PRESENT NAME="class2">
<TABLE CLASS="NOPRINT">
<LOGIC:iterate id="class2" name="class2" indexId="ind">
   <TR>
   <TD>
            <bean:write name='class2' property='school'/>
    </TD>
   </TR>
</LOGIC:ITERATE>
</TABLE>
</LOGIC:PRESENT>
</LOGIC:PRESENT>


<LOGIC:PRESENT NAME="class1">
<LOGIC:PRESENT NAME="class2">
<TABLE CLASS="NOPRINT">
<LOGIC:iterate id="class2" name="class2" indexId="ind">
   <TR>
   <TD>
            <bean:write name='class2' property='school'/>
    </TD>
   </TR>
</LOGIC:ITERATE>
</TABLE>
</LOGIC:PRESENT>
</LOGIC:PRESENT>

The second section doesn't work at all. I don't know how to reset the iterator. I absolutely cannot use any <% %> tags either. I have tried splitting the sections like I did above and I have tried putting them together as follows:

<LOGIC:PRESENT NAME="class1">
<LOGIC:PRESENT NAME="class2">

<TABLE CLASS="NOPRINT">
<LOGIC:iterate id="class2" name="class2" indexId="ind">
   <TR>
   <TD>
            <bean:write name='class2' property='school'/>
    </TD>
   </TR>
</LOGIC:ITERATE>
</TABLE>

<TABLE CLASS="NOPRINT">
<LOGIC:iterate id="class2" name="class2" indexId="ind">
   <TR>
   <TD>
            <bean:write name='class2' property='school'/>
    </TD>
   </TR>
</LOGIC:ITERATE>
</TABLE>

</LOGIC:PRESENT>
</LOGIC:PRESENT>

I have checked the code to make sure there isn't another master <LOGIC:PRESENT> tag surrounding both the NOPRINT and NOSHOW sections. There isn't one. The only tag that encompasses both of these sections is the <BODY></BODY> tag, which I would think is appropriate.

Please help. I need a solution ASAP. Also, I don't want to duplicate objects in the session. I would really like to reuse the same object ( so I don't have to use something like classB1 or classB2 ).

Thanks in advance. Will up points depending on the promptness and completeness of solution.
0
Comment
Question by:jbaisden
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
7 Comments
 

Author Comment

by:jbaisden
ID: 12137290
Correction: in the above listed...the code should look like this:

<LOGIC:PRESENT NAME="class1">
<LOGIC:PRESENT NAME="class2">
<TABLE CLASS="NOPRINT">
<LOGIC:iterate id="class2" name="class2" indexId="ind">
   <TR>
   <TD>
            <bean:write name='class2' property='school'/>
    </TD>
   </TR>
</LOGIC:ITERATE>
</TABLE>
</LOGIC:PRESENT>
</LOGIC:PRESENT>


<LOGIC:PRESENT NAME="class1">
<LOGIC:PRESENT NAME="class2">
<TABLE CLASS="NOSHOW">
<LOGIC:iterate id="class2" name="class2" indexId="ind">
   <TR>
   <TD>
            <bean:write name='class2' property='school'/>
    </TD>
   </TR>
</LOGIC:ITERATE>
</TABLE>
</LOGIC:PRESENT>
</LOGIC:PRESENT>

and the second set of code should be


<LOGIC:PRESENT NAME="class1">
<LOGIC:PRESENT NAME="class2">

<TABLE CLASS="NOPRINT">
<LOGIC:iterate id="class2" name="class2" indexId="ind">
   <TR>
   <TD>
            <bean:write name='class2' property='school'/>
    </TD>
   </TR>
</LOGIC:ITERATE>
</TABLE>

<TABLE CLASS="NOPRINT">
<LOGIC:iterate id="class2" name="class2" indexId="ind">
   <TR>
   <TD>
            <bean:write name='class2' property='school'/>
    </TD>
   </TR>
</LOGIC:ITERATE>
</TABLE>

</LOGIC:PRESENT>
</LOGIC:PRESENT>

For the record the syle sheet is in the header. It is as follows:

<STYLE media="print">.noprint
{
      DISPLAY: none;
      
}</STYLE>
<STYLE media="screen">.noshow
{
      DISPLAY: none;
      
}</STYLE>

Hope that makes it more clear.
0
 
LVL 11

Expert Comment

by:sompol_kiatkamolchai
ID: 12140090
I think your problem is how to reset index in the next iteration.

I would like you to test this option

<LOGIC:iterate id="class2" name="class2" indexId="ind" offset="0">


0
 

Author Comment

by:jbaisden
ID: 12142652
I have made that modification. The error I am receiving is: Error 500: Cannot create iterator for this collection. Will continue testing.



0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:jbaisden
ID: 12145035
I still have not made any progress. Any help would be appreciated.
0
 
LVL 35

Accepted Solution

by:
TimYates earned 500 total points
ID: 12158969
what happens if you change the ID to something other than the name of the collection?

<LOGIC:PRESENT NAME="class1">
<LOGIC:PRESENT NAME="class2">

<TABLE CLASS="NOPRINT">
<LOGIC:iterate id="it1" name="class2" indexId="ind">
   <TR>
   <TD>
            <bean:write name='it1' property='school'/>
    </TD>
   </TR>
</LOGIC:ITERATE>
</TABLE>

<TABLE CLASS="NOPRINT">
<LOGIC:iterate id="it2" name="class2" indexId="ind">
   <TR>
   <TD>
            <bean:write name='it2' property='school'/>
    </TD>
   </TR>
</LOGIC:ITERATE>
</TABLE>

</LOGIC:PRESENT>
</LOGIC:PRESENT>
0
 

Author Comment

by:jbaisden
ID: 12160986
That did it Tim! Thanks!
0
 
LVL 35

Expert Comment

by:TimYates
ID: 12161147
:-)

Good luck!!

Tim
0

Featured Post

New benefit for Premium Members - Upgrade now!

Ready to get started with anonymous questions today? It's easy! Learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Learn how to use the free Acronis True Image app to easily transfer data between iPhones and Android phones.
What's worse than having your data encrypted by ransomware? Getting attacked by a so-called "wiper," which simply destroys the data and offers you no hope of ever seeing it again.
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.
How to fix incompatible JVM issue while installing Eclipse While installing Eclipse in windows, got one error like above and unable to proceed with the installation. This video describes how to successfully install Eclipse. How to solve incompa…
Suggested Courses

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question