I was afraid you were going to say that. The more I work with struts, the more I think that XMLC beats JSP for a view mechanism. Of course, it's been a years since I used XMLC and it might not work as well as I'd like it to with the struts event model, as I haven't tried it.
----- Original Message ----- From: "Cedric Dumoulin" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, October 03, 2001 12:05 PM Subject: Re: Tiles: using tileContent inside another tile > > I have try a lot of possibilities with Tiles, but never this one ;-). > > You are facing the same problem than with <iterate> tag, because <put> tag > implements 'BodyTag'. It does so to be able to read its body. In fact, only tags > needing to read their body implements 'BodyTag'. Unfortunately, it is not > possible to use include() method in such body (which is what <get> or <insert> > does). > This is a limitation from jsp1.1. > > To resume, you can't insert or get a page inside the body of a <put> tag. > > Cedric > > > David Corbin wrote: > > > Well, I don't think it's either of the two cases you cited. Here is what I > > have essentially: > > I"ve leftout some minor niceities in the interest of space. This is not > > using any tags other than tiles. > > > > --A.jsp-- > > <tiles:insert template="B.jsp"> > > <tiles:put name="leftColumn" value="C.jsp"/> > > </tiles:insert> > > --end-- > > > > --B.jsp-- > > <tiles:insert template="D.jsp"> > > <tiles:put name="body"> > > <table cellspacing="0" width="100%"> > > <tiles:get name="leftColumn"/> > > </table> > > </tiles:put> > > </tiles:insert> > > --end-- > > > > --D.jsp-- > > <HTML> > > <BODY> > > <tiles:getAsString name="body"> > > </BODY> > > </HTML> > > --end-- > > > > --C.jsp-- > > <TR> > > <TD> Page C</TD> > > </TR> > > --end-- > > > > The top portion of the stack trace is: > > Illegal to flush within a custom tag at > > javax.servlet.jsp.tagext.BodyContent.flush(BodyContent.java:87) at > > org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.ja > > va:729) at > > org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:365) at > > > > This is the insert tag in B.jsp above. > > > > If I change the <tiles:get> to <tiles:getAsString>, everything works, except > > I get "C.jsp", rather than the content from it. > > > > I even tried adding "flush='false'" to both tiles:insert tags. > > > > AND, C.jsp is really that simple. (at this point). > > > > Any further ideas? > > > > ----- Original Message ----- > > From: "David Corbin" <[EMAIL PROTECTED]> > > To: <[EMAIL PROTECTED]> > > Sent: Wednesday, October 03, 2001 6:17 AM > > Subject: Re: Tiles: using tileContent inside another tile > > > > > Hmmm... I will explore more deeply, but the three tiles I was trying to > > > include were really just raw HTML. No real .JSP code whatsoever. Also, > > > don't all tags that care about body content have to implement BodyTag? > > Like > > > <tiles:put>? > > > > > > Thanks > > > David > > > ----- Original Message ----- > > > From: "Cedric Dumoulin" <[EMAIL PROTECTED]> > > > To: <[EMAIL PROTECTED]> > > > Sent: Wednesday, October 03, 2001 4:05 AM > > > Subject: Re: Tiles: using tileContent inside another tile > > > > > > > > > > > > > > Hi David, > > > > > > > > Tiles --CAN-- be nested. > > > > > > > > I sometime have error like yours when there is an exception in an > > > inserted > > > > jsp. > > > > A common way to debug such problem is to test separately each inserted > > > Tile. > > > > Also, this error can be throw if you try to insert Tiles inside > > > <iterator> > > > > tag, or inside body of any tag implementing 'BodyTag' (jsp1.1 > > limitation). > > > > Fortunately, I think that only the <iterator> tag implements 'BodyTag' > > in > > > > Struts. > > > > > > > > Cedric > > > > > > > > David Corbin wrote: > > > > > > > > > I'm using the tiles library, and I've been quite happy with up 'till > > > now. > > > > > > > > > > The following example is simplified-- > > > > > > > > > > I have a a template, standardPage.jsp which consists of standard > > header > > > and > > > > > footer HTML, and expects a tile named body. It uses > > <tiles:getAsString > > > > > name="body">. Works great, an lets me deifne pages like this: > > > > > > > > > > <tiles:insert tempate="standardPage.jsp"> > > > > > <tiles:put name="body> content here </tiles:put> > > > > > </tiles:insert> > > > > > > > > > > Like a charm. > > > > > > > > > > Now, I find myself trying to do a page that is built by including a > > few > > > > > other pages, and no matter how I go out about, I'm getting an > > exception > > > > > > > > > > Can't insert page '/WEB-INF/include/portal/identity.jsp' : Illegal to > > > flush > > > > > within a custom tag java.io.IOException: Illegal to flush within a > > > custom > > > > > tag. > > > > > > > > > > This seems to indicate that you can't nest tiles. Is this correct? > > > > > > > > > > David > > > > > > > > > > > > > > > > > > > > > > > >