I want to extend Sling bindings with a custom object, so it'll be available in all JSP files without an extra effort. I'm implementing BindingsValuesProvider
OSGi service, like this (it's not an actual code, but similar enough):
@Component
@Service
public class ContentBranchBindingProvider implements BindingsValuesProvider {
@Override
public void addBindings(Bindings bindings) {
final Resource resource = (Resource) bindings.get("resource");
final String[] splitPath = StringUtils.split(resource.getPath(), '/');
bindings.put("contentBranch", splitPath[1]);
}
}
I expect that the contentBranch
binding will be available as scripting variable in JSP:
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@include file="/libs/foundation/global.jsp"%>
Your content branch is: ${contentBranch}
However, above JSP doesn't output the content branch but:
Your content branch is:
I used debugger to see that my addBindings()
method is called and puts a proper value into bindings
map. What can I do to have it available as ${contentBranch}
in JSP?