Solved

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

Posted on 2004-09-23
7
1,194 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
Industry Leaders: 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 125 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

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!

Question has a verified solution.

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

This article provides a convenient collection of links to Microsoft provided Security Patches for operating systems that have reached their End of Life support cycle. Included operating systems covered by this article are Windows XP,  Windows Server…
In this blog post, we’ll look at how ClickHouse performs in a general analytical workload using the star schema benchmark test.
In this video, viewers will be given step by step instructions on adjusting mouse, pointer and cursor visibility in Microsoft Windows 10. The video seeks to educate those who are struggling with the new Windows 10 Graphical User Interface. Change Cu…
In this video, viewers are given an introduction to using the Windows 10 Snipping Tool, how to quickly locate it when it's needed and also how make it always available with a single click of a mouse button, by pinning it to the Desktop Task Bar. Int…

724 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