You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@sling.apache.org by sam ” <sk...@gmail.com> on 2012/07/23 20:28:54 UTC
letting resourceSuperType's script to handle the request before/after
current script
Hey,
I have:
/apps/image/base
/apps/image/derived/POST.jsp
/content/image/sling:resourceType = "image/derived"
POST /content/image
is handled by /apps/image/derived/POST.jsp, which is what I want.
I want POST.jsp to be same as SlingPostServlet but add some custom logic
(read properties from other Resource, transform, and persist to current
Node if criteria is met).
I tried this in POST.jsp:
<%
final SlingRequestProcessor requestProcessor =
sling.getService(SlingRequestProcessor.class);
requestProcessor.processRequest(slingRequest, slingResponse,
resourceResolver);
%>
caused infinite recursion and crashed sling instance.
I tried:
<%
final SlingPostServlet postServlet =
sling.getService(SlingPostServlet.class);
postServlet.doPost(slingRequest, slingResponse);
%>
but .doPost() is protected.
I don't need to call SlingPostServlet specifically. I want to have
resourceSuperType's script to handle request first before my POST.jsp
handles the request.
Or, I want POST.jsp to massage request object and persist some properties
to repository before delegating request handling to resourceSuperType.
Is this possible?
Re: letting resourceSuperType's script to handle the request
before/after current script
Posted by Eric Norman <er...@gmail.com>.
Maybe you can just forward the request and specify a different resourceType?
Something like this:
<sling:forward resource="${resource}" resourceType="sling/servlet/default"/>
On Mon, Jul 23, 2012 at 11:28 AM, sam ” <sk...@gmail.com> wrote:
> Hey,
>
> I have:
> /apps/image/base
> /apps/image/derived/POST.jsp
> /content/image/sling:resourceType = "image/derived"
>
> POST /content/image
>
> is handled by /apps/image/derived/POST.jsp, which is what I want.
>
> I want POST.jsp to be same as SlingPostServlet but add some custom logic
> (read properties from other Resource, transform, and persist to current
> Node if criteria is met).
>
> I tried this in POST.jsp:
> <%
> final SlingRequestProcessor requestProcessor =
> sling.getService(SlingRequestProcessor.class);
> requestProcessor.processRequest(slingRequest, slingResponse,
> resourceResolver);
> %>
>
> caused infinite recursion and crashed sling instance.
>
> I tried:
> <%
> final SlingPostServlet postServlet =
> sling.getService(SlingPostServlet.class);
> postServlet.doPost(slingRequest, slingResponse);
> %>
>
> but .doPost() is protected.
>
>
>
> I don't need to call SlingPostServlet specifically. I want to have
> resourceSuperType's script to handle request first before my POST.jsp
> handles the request.
> Or, I want POST.jsp to massage request object and persist some properties
> to repository before delegating request handling to resourceSuperType.
>
> Is this possible?
>
Re: letting resourceSuperType's script to handle the request before/after current script
Posted by Paul McMahon <or...@yahoo.com>.
Instead of using a JSP I'd say you would be better off extending the SlingPostServlet with your own servlet. You can set the sling.servlet.resourceTypes and sling.servlet.methods and sling.servlet.extensions to target it to the correct requests. Since you are extending the SlingPostServlet you should have access to the protected methods.
Paul McMahon
Acquity Group
________________________________
From: sam ” <sk...@gmail.com>
To: users@sling.apache.org
Sent: Monday, July 23, 2012 11:28 AM
Subject: letting resourceSuperType's script to handle the request before/after current script
Hey,
I have:
/apps/image/base
/apps/image/derived/POST.jsp
/content/image/sling:resourceType = "image/derived"
POST /content/image
is handled by /apps/image/derived/POST.jsp, which is what I want.
I want POST.jsp to be same as SlingPostServlet but add some custom logic
(read properties from other Resource, transform, and persist to current
Node if criteria is met).
I tried this in POST.jsp:
<%
final SlingRequestProcessor requestProcessor =
sling.getService(SlingRequestProcessor.class);
requestProcessor.processRequest(slingRequest, slingResponse,
resourceResolver);
%>
caused infinite recursion and crashed sling instance.
I tried:
<%
final SlingPostServlet postServlet =
sling.getService(SlingPostServlet.class);
postServlet.doPost(slingRequest, slingResponse);
%>
but .doPost() is protected.
I don't need to call SlingPostServlet specifically. I want to have
resourceSuperType's script to handle request first before my POST.jsp
handles the request.
Or, I want POST.jsp to massage request object and persist some properties
to repository before delegating request handling to resourceSuperType.
Is this possible?