You could try changing the logic that sets the myAgents Vector into the
session to either set the list or set a zero length list rather than
null...just a thought.  Try explicitly setting the scope in your bean write
tag
HTH  ;-)

Jin
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, March 14, 2002 5:20 PM
Subject: RE: <logic:present> and <logic:notPresent> tags - both are being
exec uted!


> OK I've overcame this problem by (reluctantly) using
>
> <% if (session.getAttribute("myAgentsVector") == null ) { %>
> ..... display static html ....
> <% } else { %>
> ..... logic:iterate thru the Vector and bean:write each element's
properties
> into a table ....
> <% } %>
>
> But I keep getting an error message
> "Cannot find bean agent in scope null"
> where the bean 'agent' is the id given in the logic:iterate tag.
>
> By default - this bean will have page scope, so by using the default
> bean:write tag - it should be located.
>
> Here's the key tags that are causing this:
>
> <logic:iterate id="agent" name="myAgentsVector"
> type="zeus.generator.web.model.object.Agent" scope="session">
> ....
> <bean:write name="agent" property="name"/>
> ....
> </logic:iterate>
>
>
> Oh I hope I don't need to begin yet another new subject thread!  : (
>
> Cheers.
>
> Lindsay
>
>  -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> Sent: 14 March 2002 16:18
> To: [EMAIL PROTECTED]
> Subject: <logic:present> and <logic:notPresent> tags - both are being
> exec uted!
>
> Hi,
>
> I have an action class (HomeAction) that sets a session attribute (can I
> call this a bean!?) which is a java.util.Vector of my own custom Agent
> objects.  This attribute is only set if the Vector, created by the action
> class, is not empty.
>
> Anyway - eventually the HomeAction class will forward to home.jsp which is
> where I want to present this Vector in a table.  At present, this Vector
is
> always empty and so the HomeAction class will NOT add it to the session.
>
> Before I continue - here is the troublesome JSP code:
>
>
> <logic:notPresent name="myAgentsVector" scope="session"
> type="java.util.Vector">
> <% System.out.println("Did not find session attribute myAgentsVector.
User
> has no agents"); %>
>   <tr>
>     <td width="3">&nbsp;</td>
>     <td>
>       <div align="center">You currently have no agents.</div>
>     </td>
>   </tr>
> </logic:notPresent>
>
> <logic:present name="myAgentsVector" scope="session"
> type="java.util.Vector">
> <% System.out.println("Found session attribute myAgentsVector.  Creating
> dynamic My Agents table"); %>
> <!-- START "MY AGENTS" TABLE DYNAMIC CONTENT -->
>   <logic:iterate id="agent" name="myAgentsVector"
> type="zeus.generator.web.model.object.Agent" scope="page">
>   <% System.out.println("Created a bean called agent - from
> myAgentsVector"); %>
>     <tr>
>       <td width="3" bgcolor="<bean:write name="agent" property="color"/>"
> bordercolor="#CCCCCC">&nbsp;</td>
>       <td><bean:write name="agent" property="name" scope="page"/></td>
>       <td><bean:write name="agent" property="type.name" scope="page"/>
> (v<bean:write name="agent" property="type.version" scope="page"/>)</td>
>       <td><bean:write name="agent" property="status" scope="page"/>/td>
>       <td>To be defined (using Struts)</td>
>     </tr>
>   </logic:iterate>
> <!-- END "MY AGENTS" TABLE DYNAMIC CONTENT -->
> </logic:present>
>
>
> I'd expect only the body of the <logic:notPresent> tag to be executed, but
> for some reason the <logic:present> tag's body is also being executed.
Here
> is the console output to show it:
>
>
> 2002-03-14 16:08:30 - Ctx(/struts-SACT) : Compiling: /home.jsp to home_13
> Did not find session attribute myAgentsVector.  User has no agents
> Found session attribute myAgentsVector.  Creating dydnamic My Agents table
> Created a bean called agent - from myAgentsVector
> 2002-03-14 16:08:32 - Ctx(/struts-SACT) : Exception in R( /struts-SACT +
> /home.jsp + null) - javax.servlet.ServletException: Cannot find bean agent
> in scope null
>
>
>
> Do any of you wise people (   =oS   )  have any idea what I'm doing wrong
in
> this code.
>
> Many many thanks,
>
> Lindsay
>
> --
> To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>
>

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to