Per-Olof,
Ah. You put the closing </xsp:logic before the <xsp:attribute>.
So the full snippet should be:
<xsp:page>
<page>
<xsp:logic>
if (!request.isUserInRole("root"))
{
</xsp:logic> <!-- Note this -->
<xsp:attribute name="security-error">Not authorized</xsp:attribute>
<xsp:logic>
}
else
{
</xsp:logic>
<content>
...
</content>
<xsp:logic>
}
</xsp:logic>
</page>
</xsp:page>
Ugh. Will try.
Per
> Hi per and Michael,
>
> I had to end the logic tag to make theese sort of things work:
> <xsp:page>
> <page>
> <xsp:logic>
> if (!request.isUserInRole("root"))
> {
> </xsp:logic> <!-- Note this -->
>
> <xsp:attribute name="security-error">Not authorized</xsp:attribute>
>
> <xsp:logic>
> }
> </xsp:logic>
>
> </page>
> </xsp:page>
>
> As I figured it�s like <% in asp. You�re in different "modes" when in
> logic element and outside.
>
> Attached is a real-life example (with for loops, not if statements, but
> the behaviour is probably the same) that is used from a flowscript to
> generate a "datePicker" calendar.
>
>
> Regards,
> Per-Olof Noren
>
>
>
> <
> >>
> >> <page>
> >> <xsp:logic>
> >> if (!request.isUserInRole("root"))
> >> {
> >> <xsp:attribute name="security-error">Not
> authorized</xsp:attribute>
> >> }
> >> else
> >> {
> >> <xsp:content>
> >>
> >> <!-- Build the page if authorized -->
> >> <content />
> >>
> >> </xsp:content>
> >> }
> >> </xsp:logic>
> >> </page>
> >>
> >> </xsp:page>
>
>
> Per Kreipke wrote:
> > Michael,
> >
> > Thanks for the tip. However, your tip makes the problem even more
> > interesting.
> >
> > When the 'if' statement is true, the <xsp:attribute> does appear on the
> > toplevel element and the XML is valid (no more array bounds exception).
> >
> > But when the 'if' statement is false, the <page> element isn't
> the top most,
> > it's emitted after the <content> element. E.g. <page> is a
> sibling of the
> > <content> element and the XML has _two_ top level elements,
> also invalid.
> >
> > Per
> >
> >
> >>-----Original Message-----
> >>From: Enke, Michael [mailto:[EMAIL PROTECTED]]
> >>Sent: Tuesday, September 10, 2002 2:58 AM
> >>To: [EMAIL PROTECTED]
> >>Subject: Re: XSP bug: can get generate() to skip elements using java
> >>'if's
> >>
> >>
> >>Per Kreipke wrote:
> >>
> >>>The following XSP snippet will cause an
> >>
> >>ArrayIndexOutOfBoundsException in
> >>
> >>>Cocoon 2.0.3 because the start of the outer element is never
> >>
> >>emitted to the
> >>
> >>>SAX stream.
> >>>
> >>>XSP Snippet:
> >>
> >>
> >>I would always write it as:
> >>
> >> <xsp:page ....>
> >>
> >> <page>
> >> <xsp:logic>
> >> if (!request.isUserInRole("root"))
> >> {
> >> <xsp:attribute name="security-error">Not
> authorized</xsp:attribute>
> >> }
> >> else
> >> {
> >> <xsp:content>
> >>
> >> <!-- Build the page if authorized -->
> >> <content />
> >>
> >> </xsp:content>
> >> }
> >> </xsp:logic>
> >> </page>
> >>
> >> </xsp:page>
> >>
> >>note: </xsp:logic> replaced by <xsp:content>
> >>and <xsp:logic> replaced by </xsp:content>
> >>
> >>Michael
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>For additional commands, email: [EMAIL PROTECTED]
> >>
> >>
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, email: [EMAIL PROTECTED]
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]