Hi,
On 25.01.2010 20:43, Justin Edelson wrote:
> I've just committed an implementation of SLING-1303, which allows
> bundles to dynamically add new values to the Bindings object used with
> scripting. I think it's working nicely, except for the JSP integration.
> IIRC, you can't dynamically add scripting variables - the TagExtraInfo
> class is invoked at compile time, not runtime.
>
> Assuming this is the case (and I'm the first to admit my JSP API skills
> are weak),
I can assure you that you are not alone -- I am sitting in that very
same boat with you ;-)
> I'm not sure the best way to present these additional
> Bindings values to JSP scripts. As things currently stand, you need to
> get the SlingBindings object out of the request attributes and then get
> the key you want:
>
> <%...@page import="org.apache.sling.api.scripting.SlingBindings"%>
> ...
> <% SlingBindings bindings = (SlingBindings)
> request.getAttribute("org.apache.sling.api.scripting.SlingBindings"); %>
> ...
> <p>jspHelloWorld:<%= bindings.get("jspHelloWorld") %></p>
>
> Ideally, this would be:
> <p>jspHelloWorld:<%= jspHelloWorld %></p>
>
> (which is how it works in ESP and Groovy scripts)
>
> but that seems impossible.
I agree with you, that whis would be a really good thing --
unfortunately, I also have not found the ideal solution until now. There
are few workaround approaches, I can see right now:
(1) Provide the sling variable as part of the <sling:defineObjects> tag
and then you can access the properties using EL:
${sling.jspHelloWorld}
(2) Provide a tag to access the properties:
<sling:get name="jspHelloWorld" />
IIRC the sling variable is already present as part of the
<sling:defineObjects> tag.
WDYT ?
Regards
Felix
>
> Anyone who actually uses JSPs care to comment on what would be the most
> natural way to interface with these non-standard Bindings values?
>
> Thanks,
> Justin
>