[ https://issues.apache.org/jira/browse/SLING-247?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Carsten Ziegeler closed SLING-247. ---------------------------------- Resolution: Fixed > Provide Scripting variables as request attributes for JSP > --------------------------------------------------------- > > Key: SLING-247 > URL: https://issues.apache.org/jira/browse/SLING-247 > Project: Sling > Issue Type: Improvement > Components: JSP > Reporter: Felix Meschberger > Assignee: Carsten Ziegeler > Fix For: 2.0.0 > > > The scripting variables defined in the SlingBIndings class are defined as > global variables in script language bindings such as JavaScript and Velocity. > In JSP this binding does not exist yet. > The issue with JSP is, that JSPs are translated using a text-transformation > to a Java class implementing the Servlet interface. As such there is no such > thing as a global variable. A workaround to inject well known objects is > implemented with <sling:defineObjects> tag. But this tag does not make the > same defined variables available. > I suggest to enhance JSP scripting as follows: > (1) Bindings as Request Attributes > All bindings defined in the SlingBindings object prepared for the script > evaluation are stored as request attributes for use by the JSP. > (2) Predefined bindings as variables through <sling:defineObjects> > Some of the predefined bindings in the SlingBIndings object are mapped as > variables in the JSP when using the <sling:defineObjects> tag. Some variable > require special treatment: > - request: The request variable already exists and is of type > HttpServletRequest, the SlingHttpServletRequest object is bound as the > slingRequest variable. > - response: Same as for the request. The SlingHttpServletResponse object is > bound as slingResponse > - sling: Bound as is of type SlingScriptHelper > - resource: Bound as is of type Resource > - out: already bound by the JSP spec, nothing to be done > - flush: Bound as is of type boolean > - log: Bound as is of type org.slf4j.Logger > The variable names listed above (slingRequest, slingResponse, sling, > resource, flush, log) may be overwritten by specifying another name in the > defineObjects tag, such as <sling:defineObjects logName="logger" /> do use > "logger" as the name of the "Logger". > (3) additional bindings only for JSP when using <sling:defineObjects> > Currently the sling:defineObjects tag provides further variables: the JCR > Node to which the resource adapts, (optionally) the mapped object to which > the resource adapts (if the respective class is declared), the resource > resolver and the service locator. I suggest we just keep these variables, > though they are most probably definitely overkill.... -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.