Hi Phil You can simply do <sling:include path=".json"/> if you want the current resource rendered as json or in your case <sling:include path="<%=child.getPath()%>.json"/> (optionally with resourceType attribute).
Note: the default json rendering servlet sets the Content-Type header to application/json. This can cause your HTML to be returned with the incorrect content type. You can mitigate this by explicitly flushing the output stream before the include. Regards Julian On Sun, Jul 17, 2011 at 11:56 AM, Phil Rice <[email protected]> wrote: > I would like to be able to make it so that when I use a > <sling:include> I can request the included resource to have a > different extension. In the following experiment I am trying to get > the .json representation of the children to be included. > > I tried the following in sling/servlet/default/hello.jsp (headers > removed for clarity) > > This is the default from hello.jsp</br /> > <% for (Iterator<Resource> iterator = resource.listChildren(); > iterator.hasNext();){ %> > <% Resource child = iterator.next(); %> > <ul> > <li>ChildPath: <%= child.getPath() %></li> > <li>JustTag <sling:include resource="<%= child %>" /></li> > <li>With resourceType <sling:include resource="<%= child %>" > resourceType="components/summary" /></li> > <li>With replaceSuffix <sling:include resource="<%= child %>" > replaceSuffix="json" /></li> > <li>With replaceSelectors <sling:include resource="<%= child %>" > replaceSelectors="json" /></li> > <li>With addSelectors <sling:include resource="<%= child %>" > addSelectors="json" /></li> > </ul> > <% } %> > > I have a hello.jsp in components/hello.jsp and another in > components/summary/hello.jsp > > When I view a page with one child (and the page didn't have a > resourceType) I get the following > > This is the default from hello.jsp > ChildPath: /content/mynode/ChildNode > JustTag This is the default from hello.jsp > With resourceType This is the components/summary/hello.jsp > With replaceSuffix This is the default from hello.jsp > With replaceSelectors This is the default from hello.jsp > With addSelectors This is the default from hello.jsp > > So what is happening is that the extension of the original query is > being propogated through the <sling:include> tag. By specifying the > sling:resourceType I can actually execute arbitray scripts, as long as > they have the same extension type as the original query. > > Is there any mechanism for getting the html that I would have got from > <childNode>.json and including it in the output? >
