Carol,
I saw this behaviour as well when I tried changing the layout of the
default.jsp file.  What I discovered is that apparently the ecsscreen
taghandler (the class that gets called to process the <jetspeed:ecsscreen>
tag element) apparently is not using the output stream of its parent
container, but using the base output stream.  As a result the output
buffered in the parent stream doesn't show up until after the ecsscreen
output.

Since I was trying to put together a proof of concept demo before going on
holiday, I didn't look into the ecsscreen source code to see exactly what
the problem was, but I did find that adding the following immediately before
the <jetspeed:ecsscreen> tag allowed me to work around the problem and
continue my demo.

Add the following just before the <jetspeed:ecsscreen> tag:

<% out.flush(); %>

This will cause the parent buffer to be flushed before calling the ecsscreen
tag handler.

Cheers,
- Tim Taylor

> -----Original Message-----
> From: Carol Jones [mailto:[EMAIL PROTECTED]]
> Sent: Friday, December 29, 2000 11:31 AM
> To: JetSpeed
> Subject: strange problem with ecs screen element
> 
> 
> There is something very strange going on with 
> EcsScreenElement. Somehow its
> markup is being put into the output stream in the wrong 
> place. I have no
> idea what is wrong, but here is a test case to show the problem.
> 
> First take the file default.jsp (from 
> WEB-INF\templates\jsp\html) and strip
> out all the extra formatting until you have this:
> 
> <%@ taglib uri='../../tld/template.tld' prefix='jetspeed' %>
> <html>
> <head>
>   <base href="<jetspeed:uriLookup type="BaseURL" />">
>   <link href="css/default.css" type="text/css" rel="stylesheet">
> </head>
> <body bgcolor="#ffffff">
>     <jetspeed:jetspeedNavigation  defaultTemplate="top_default.jsp"
> loggedInTemplate="top_loggedIn.jsp" />
>     <jetspeed:jetspeedNavigation  defaultTemplate="left.jsp" />
>     <jetspeed:ecsscreen />
>     <jetspeed:jetspeedNavigation  defaultTemplate="bottom.jsp" />
> </body>
> </html>
> 
> The page will display correctly, just not very pretty. Now insert some
> markup in between the <jetpseed:> tags, like this:
> ...
> <body bgcolor="#ffffff">
>     <jetspeed:jetspeedNavigation  defaultTemplate="top_default.jsp"
> loggedInTemplate="top_loggedIn.jsp" />
>  <p>Hello 1</p>
>     <jetspeed:jetspeedNavigation  defaultTemplate="left.jsp" />
>  <p>Hello 2</p>
>     <jetspeed:ecsscreen />
>  <p>Hello 3</p>
>     <jetspeed:jetspeedNavigation  defaultTemplate="bottom.jsp" />
> </body>
> ...
> 
> When the page is displayed, you will see that Hello 2 and 
> Hello 3 are both
> BELOW the ecscreen output, and when you view source from your 
> browser, the
> markup is definitely wrong. I noticed this because I was 
> trying to make a
> very elaborate page layout, but the tables were not coming 
> out right. I'm
> not sure why it appears to work, maybe it's just the luck of 
> how the tags
> are nested in default.jsp.
> 
> The work around is the put the formatting tags inside the 
> navigation files.
> 
> Carol
> 
> 
> 
> 
> --
> --------------------------------------------------------------
> To subscribe:        [EMAIL PROTECTED]
> To unsubscribe:      [EMAIL PROTECTED]
> Search: <http://www.mail-archive.com/[email protected]/>
> List Help?:          [EMAIL PROTECTED]
> 


--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Search: <http://www.mail-archive.com/[email protected]/>
List Help?:          [EMAIL PROTECTED]

Reply via email to