cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Per-Olof Norén <pe...@alma.nu>
Subject Re: XSP bug: can get generate() to skip elements using java 'if's
Date Tue, 10 Sep 2002 15:16:40 GMT
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:michael.enke@wincor-nixdorf.com]
>>Sent: Tuesday, September 10, 2002 2:58 AM
>>To: cocoon-dev@xml.apache.org
>>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: cocoon-dev-unsubscribe@xml.apache.org
>>For additional commands, email: cocoon-dev-help@xml.apache.org
>>
>>
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
> For additional commands, email: cocoon-dev-help@xml.apache.org



Mime
View raw message