REQUIREMENT
Construct some custom JSON rendition of a page. For example: /content/site/page.my.json
And we want to accomplish this without losing the out-of-the-box functionality:
- /content/site/page.html - WORKS OUT OF THE BOX
- /content/site/page.json - WORKS OUT OF THE BOX
WHAT WE'VE TRIED
We've added a jsp to our global page template and named it my.json.jsp. This has given us this behavior:
- /content/site/page.my.json - INVALID RECURSION SELECTOR (the request gets handled by default json renderer and "my" is not a valid recursion selector)
- /content/site/page/_jcr_content.my.json - WORKS (we can see our custom json renderer working), but we have other reasons we cannot use this URI.
So we're nearly there. Next, we add "json" to the list of extensions that are treated with default resolution behavior, by going to felix config and editing the "Apache Sling Servlet/Script Resolver And Error Handler:
Image may be NSFW.
Clik here to view.
By doing this, now our custom json WORKS, but we get the following results:
- /content/site/page.my.json - WORKS (our custom JSON renders)
- /content/site/page.json - DOESN'T WORK (html is rendered rather than the default JSON renderer)
How can we provide this custom renderer at *.my.json without losing the functionality of the default *.json renderer, necessary for dialogs in the page properties, etc.
Thanks!