Sunday 18 May 2014

CQ Defined objects


CQ and Sling has provided some custom tag libraries which could reduce the development effort. <cq:definedObjects/>, <sling:definedObjects/>  has some regularly used scripting objects.

If "/libs/foundation/global.jsp" is included in the script, these tag libraries will get included by default

Objects defined by Sling:

slingRequest – SlingHttpServletRequest  Object
  <%ResourceResolver rr=slingRequest.getResourceResolver();%>
But resource resolver is already available as a defined object explained below

slingResponse – SlingHttpServletResponse Object

request - HttpServletRequest Object

response -  HttpServletResponse Object

resourceResolver - Current requests ResourceResolver Object                  <%=resourceResolver.getResource("/apps/blog/components/checkboxtest").getName()%>

sling - SlingScriptHelper Object which provides methods for scripts.Most commonly used to fetch an OSGI
           service reference
            <% QueryBuilder queryBuilder=sling.getService(QueryBuilder.class); %>

resource - The current resource same as slingRequest.getResource();
 <%=resource.getResourceType()%>

currentNode - Current resource node Object
      <%=currentNode.getName()%>
log - SLF4J logger
<%log.info("Logging test");%>

Objects defined by CQ:

componentContext - The current component context Object
                                 <%=componentContext.getComponent()%>

component - The current component Object
                     <%=component.getComponentGroup()%>

currentPage - Current page object
                       <%=currentPage.getPath()%>

pageManager - Page manager object useful for performing operations on page
                         <%=pageManager.getPage("page path")%>

pageProperties - Page properties that can be used directly rather than reading them from page again
                           
properties - properties of the current resource
                    <%STring arr[]=properties.get("myProperty",String[].class);%>


More details on the tag libraries available at
http://wem.help.adobe.com/enterprise/en_US/10-0/wem/howto/taglib.html