Thank you that worked perfectly

On Sun, Jul 17, 2011 at 12:15 PM, Julian Sedding <[email protected]> wrote:
> 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?
>>
>

Reply via email to