This article is an extension to Discover Sling in 15 minutes showing how to use sling.include in JSP . Its best to look at Discover Sling in 15 minutes before continuing this article.
sling.include can be called in two ways in a JSP script.
- using <sling:include> tag.
using <% sling.include("[path to resource]") ; %>
To use sling:include in a JSP script , you have to use <sling:defineObjects/> tag.
The examples in Discover Sling in 15 minutes for using sling.include should be changed to jsp as follows,
The header.jsp is as follows,
<%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0"%> <sling:defineObjects/> <div> <p style="color:blue;"> <img src="/images/sling.jpg" align="right"/> <%= currentNode.getProperty("headline").getValue().getString() %> </p> </div>
The html.jsp can be written in one of the following ways,
If you are using <% sling.include("[path to resource]") ; %> create html.jsp as follows,
<%@page session="false"%> <%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0"%> <sling:defineObjects/> <html> <body> <div id="header"> <% sling.include("/content/header"); %> </div> <h1><%= currentNode.getProperty("title").getValue().getString() %></h1> </body> </html>
If you are using <sling:include> tag create html.jsp as follows,
<%@page session="false"%> <%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0"%> <sling:defineObjects/> <html> <body> <div id="header"> <sling:include path="/content/header" /> </div> <h1><%= currentNode.getProperty("title").getValue().getString() %></h1> </body> </html>
How to use selectors
The above examples will assume all your resources are rendered using a html.jsp at each node. Then you might have a question as to how can I use more than one script to work with more than one resource.
Sling has an answer. The addSelectors parameter in <sling:include /> tag.
References:
For more information on other scripting variables look at Common scripting variables page.