[opencms-dev] Is something wrong with cms:include when nested?

Alexander Kandzior alex at opencms.org
Tue Sep 5 13:06:55 CEST 2006


> I do 
> think it would 
> be useful to be able to wrap the <cms:include>-tag just like you can 
> most other tags.

With OpenCms 6.2.x, there is a new attribute "cacheable" for the
<cms:include> tag that allows just that. The default is "true". 

It may be used like this:

<c:set var="child">
<cms:include page="child.txt" cacheable="false" />
</c:set>

Kind Regards,
Alex.

-------------------
Alexander Kandzior
                                                               
Alkacon Software GmbH  - The OpenCms Experts                  
http://www.alkacon.com - http://www.opencms.org                 

> -----Original Message-----
> From: opencms-dev-bounces at opencms.org 
> [mailto:opencms-dev-bounces at opencms.org] On Behalf Of Claus Priisholm
> Sent: Tuesday, September 05, 2006 8:46 AM
> To: The OpenCms mailing list
> Subject: Re: [opencms-dev] Is something wrong with 
> cms:include when nested?
> 
> I've experienced a similar problem 
> (http://mail.opencms.org/pipermail/opencms-dev/2006q3/024896.h
> tml) - my 
> best guess is that it has to do with the juggling of 
> JspWriters or the 
> cache mechanism (or both).
> 
> I ended up doing a servlet filter since it solved the 
> immediate problem 
> (and the performance overhead was not an issue), but I do 
> think it would 
> be useful to be able to wrap the <cms:include>-tag just like you can 
> most other tags.
> 
> Stefan Uldum Grinsted wrote:
> > Hi list (and OpenCMS developers)
> > 
> >  
> > 
> > I know nested Tags always are a hurdle, but I have found a 
> particular 
> > strange behavior of cms:include in OpenCMS 6.2.2 when 
> nesting it inside 
> > a c:set.
> > 
> >  
> > 
> > I have replicated it using the following. I have 3 files:
> > 
> > - blank.txt
> > 
> > - child.txt
> > 
> > - parent.jsp
> > 
> >  
> > 
> > The blank.txt is of course an empty file of the type plain.
> > 
> > The child.txt is a plain document containing the following line:
> > 
> > I am a child
> > 
> >  
> > 
> > The parent.jsp looks like this:
> > 
> > <%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>
> > 
> > <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
> > 
> > <c:set var="child">
> > 
> > <cms:include page="child.txt" />
> > 
> > </c:set>
> > 
> > This should be the child: ${child}<br/>
> > 
> > And it should have ended here, because this should be the 
> blank.txt:<br/>
> > 
> > <cms:include page="blank.txt" />
> > 
> >  
> > 
> >  
> > 
> > If it wasn't for the last line, including the blank file, 
> *nothing* is 
> > in the response. Not even the "This should be the child"-text
> > 
> >  
> > 
> > I tried to add the last line mostly because I have tried everything 
> > else, and the most peculiar thing is, the response then 
> looks like this:
> > 
> > This should be the child: <br/>
> > 
> > And it should have ended here, because this should be the 
> blank.txt:<br/>
> > 
> > I am a child
> > 
> >  
> > 
> >  
> > 
> >  
> > 
> > I would have just used a <cms:include page="child.txt" 
> var="child" /> if 
> > such a functionality had been available, as it 
> unfortunately isn't.. yet.
> > 
> > The reason for all this hurdle is that I have a jsp, which 
> generates a 
> > menu structure as xml, which is the "child" I want to 
> include, and then 
> > use the xml:transform from jstl to generate some html for the menu.
> > 
> >  
> > 
> > The use of xml:transform brought up some issues itself. Is 
> it true that 
> > the jar file xalan.jar is modified in the opencms distribution?
> > 
> > Usually the org/apache/xalan/res/XSLTInfo.properties has 
> the following 
> > lines:
> > 
> > org.xml.sax.driver=org.apache.xerces.parsers.SAXParser
> > 
> > # org.xml.sax.driver=org.apache.crimson.parser.XMLReaderImpl
> > 
> > But the one in the opencms distribution has these lines:
> > 
> > # org.xml.sax.driver=org.apache.xerces.parsers.SAXParser
> > 
> > org.xml.sax.driver=org.apache.crimson.parser.XMLReaderImpl
> > 
> >  
> > 
> > And that is even though the crimson parser is not part of 
> the classpath. 
> > (not on Tomcat 5.5 running on JDK 5). And that resulted in 
> the following 
> > error:
> > 
> > "SAX2 driver class org.apache.crimson.parser.XMLReaderImpl 
> not found"
> > 
> >  
> > 
> > But when I commented out the line which sets the driver 
> class in the 
> > properties file, everything worked fine.
> > 
> >  
> > 
> > Anyways. This last bit was a bit of a side-kick, but the original 
> > problem remains. And I would really like to figure out why 
> you can't 
> > nest cms:include inside c:out.
> > 
> >  
> > 
> > Good evening, and enjoy.
> > 
> >  
> > 
> > Cheers, Stefan.
> > 
> > 
> > 
> --------------------------------------------------------------
> ----------
> > 
> > 
> > _______________________________________________
> > This mail is sent to you from the opencms-dev mailing list
> > To change your list options, or to unsubscribe from the 
> list, please visit
> > http://lists.opencms.org/mailman/listinfo/opencms-dev
> 
> -- 
> Claus Priisholm, CodeDroids ApS
> Phone: +45 48 22 46 46
> cpr (you know what) codedroids.com - http://www.codedroids.com
> cpr (you know what) interlet.dk - http://www.interlet.dk
> --
> Javadocs and other OpenCms stuff: 
> http://www.codedroids.com/community/opencms
> 
> 
> _______________________________________________
> This mail is sent to you from the opencms-dev mailing list
> To change your list options, or to unsubscribe from the list, 
> please visit
> http://lists.opencms.org/mailman/listinfo/opencms-dev
> 
> 




More information about the opencms-dev mailing list