On Thu, Aug 22, 2013 at 6:12 PM, Francesco Mari <[email protected]> wrote: > Try this [1], I hope it will help. I don't know if it's understandable > and 100% accurate, but it's the outcome of hours spent investigating > the servlet resolution process. > > If you find some errors in there, feel free to add a comment to it. > > [1]: https://gist.github.com/francescomari/17d61034a4776ff34170
Nice ! It looks a little bit like you're trying to submit a documentation patch, doesn't it ;-) ? Robert > > 2013/8/21 Daniel Platon <[email protected]>: >> Hi Felix, >> >> Thank you for your reply. >> >> I realized myself (after some Sling debugging) that >> ServletResolver.resolveServlet(ResovlerResolver, String) is of no help to >> me. >> I'll get back to the drawing board now ;) >> >> ___________________________ >> Daniel Platon >> >> >> On Wed, Aug 21, 2013 at 3:54 PM, Felix Meschberger-3 [via Apache Sling] < >> [email protected]> wrote: >> >>> Hi Daniel >>> >>> Am 20.08.2013 um 16:30 schrieb Daniel Platon: >>> >>> > Hi everyone, >>> > >>> > Q: How can I determine the script used to render a certain resource >>> type? >>> > >>> > Details: I'm trying to do this in a JSP page (for my sling-explorer >>> > project) so that the user can see what script renders a certain type of >>> > content (a resourceType that is). This is what I tried so far: >>> > >>> > 1. Obtain a reference to a ServletResolver service using >>> > ServletResolver servletResolver = >>> sling.getService(ServletResolver.class); >>> > >>> > 2. Ask the service to "resolve" the resource type: >>> > Servlet servlet = >>> > servletResolver.resolveServlet(resourceResolver,"myapp/mytype") >>> >>> The ServletResource.resolveServlet(ResovlerResolver, String) method takes >>> a (relative) script path as its second argument not a resource type. And >>> since there is no script with this relative path in the ResourceResovler's >>> search path, you won't get it. >>> >>> The method finding a script would be >>> ServletResource.resolveServlet(SlingHttpServletRequest) which requires you >>> to have a request object, which exposes the Resource whose resource type is >>> used (and whose super resource type is also used). The request object also >>> provides the method and selectors helping to decide on the script. >>> >>> Regards >>> Felix >>> >>> > >>> > but this returns null. >>> > >>> > Everything is in place: the script is there, the resource renders >>> correctly >>> > (the script is in /apps/myapp/mytype/mytype.jsp), it's just that the >>> > resolver returns null when asked to resolve a script. >>> > >>> > Is there another way (perhaps... the right way :) ) to do this? >>> > >>> > Thank you and have a good day. >>> > ___________________________ >>> > Daniel Platon >>> >>> >>> >>> ------------------------------ >>> If you reply to this email, your message will be added to the discussion >>> below: >>> >>> http://apache-sling.73963.n3.nabble.com/Determine-the-rendering-script-by-resource-type-tp4026386p4026397.html >>> To start a new topic under Sling - Users, email >>> [email protected] >>> To unsubscribe from Apache Sling, click >>> here<http://apache-sling.73963.n3.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=73963&code=ZHBsYXRvbkBnbWFpbC5jb218NzM5NjN8NTEwNzc3ODQ5> >>> . >>> NAML<http://apache-sling.73963.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> >>> >> >> >> >> >> -- >> View this message in context: >> http://apache-sling.73963.n3.nabble.com/Determine-the-rendering-script-by-resource-type-tp4026386p4026398.html >> Sent from the Sling - Users mailing list archive at Nabble.com. -- Sent from my (old) computer
