Quantcast
Viewing all articles
Browse latest Browse all 12476

Provide alternative JSON renderer? Without losing default JSON renderer?

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.
resolverconfig.png

 

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!


Viewing all articles
Browse latest Browse all 12476

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>