Include Parameters for sling:include/SlingRequestDispatcher
-----------------------------------------------------------

                 Key: SLING-982
                 URL: https://issues.apache.org/jira/browse/SLING-982
             Project: Sling
          Issue Type: New Feature
          Components: API, Engine, Scripting JSP
            Reporter: Stefan Seifert
         Attachments: 090521_SLING-982_includesupport.patch

attached is a patch proposal that adds support for include parameters when 
using <sling:include> tag or SlingRequestDispatcher.

it supports two ways of pathing url paramters to included requests:

1) adding url parameters in "path" attribute
example:
<sling:include path="./child1?param1=abc&param2=def" />

2) adding url paramters via a new <sling:param> tag
example:
<sling:include path="./child1">
  <sling:param name="param1" value="abc"/>
  <sling:param name="param2" value="def"/>
</sling:include>

both ways can be mixed. the semantics of the <sling:param> tag is the same as 
the <jsp:param> tag: if a parameter with the same name exists already in the 
surrounding requests, a new value is added, but the new value has a higher 
precedence. e.g. if the request has a parameter A=foo and a parameter A=bar is 
specified for include, the included request shall have A=bar,foo.

internal remarks:
* for this enhancements two methods have to be extended in sling api: a new 
querystring attribut in RequestDispatcherOptions and a 
"setIncludeRequestParameterMap" in SlingHttpServletRequest. i'm not completely 
happy with the need for the latter one, but we need a way to pass through the 
include paramteres to an existing request.
* i've checked if it is possible to reuse jsp:param instead of creating a new 
sling:param tag. i think this is not possible, and not intended (excerpt from 
jsp spec concerning jsp:param: "This element is used in the jsp:include, 
jsp:forward, and jsp:params elements. A translation error shall occur if the 
element is used elsewhere.")
* the internal encoding for include parameters is hard-coded to UTF-8. i hope 
this is ok, because all include parameter handling happens only inside a sling 
request.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to