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?

Reply via email to