Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

Get currentNode or currentPage inside JSP


Level 2


is there a way to get current node or current page inside JSP?

I am playing with the data source and I would like to get all property on the current page.

Thank you so much.

Piece of code:

<%@include file="/libs/granite/ui/global.jsp"%>

<%@ page import="com.adobe.granite.ui.components.ds.DataSource" %>

<%@ page import="com.adobe.granite.ui.components.ds.ValueMapResource" %>

<%@ page import="java.util.HashMap" %>

<%@ page import="" %>

<%@ page import="com.adobe.granite.ui.components.ds.SimpleDataSource" %>

<%@ page import="org.apache.commons.collections.iterators.TransformIterator" %>

<%@ page import="java.util.Map" %>

<%@ page import="java.util.LinkedHashMap" %>

<%@ page import="org.apache.commons.collections.Transformer" %>

<%@ page import="*" %>


    final Map<String, String> listSelectToRender = new LinkedHashMap<String, String>();

Resource datasource = resource.getChild("datasource");

ResourceResolver resolver = resource.getResourceResolver();

ValueMap dsProperties = ResourceUtil.getValueMap(datasource);

Page myPage = //GET current page;

String genericListPath = dsProperties.get("field", String.class);

String rootPath = myPage.getProperty(genericListPath, String.class);

if(genericListPath != null) {

String[] listToken = genericListPath.split(",");

for(String token: listToken) {

listSelectToRender.put(token, token);



    DataSource ds = new SimpleDataSource(new TransformIterator(listSelectToRender.keySet().iterator(), new Transformer() {

        public Object transform(Object o) {

            String key = (String) o;

            ValueMap vm = new ValueMapDecorator(new HashMap<String, Object>());

            vm.put("value", listSelectToRender);

            vm.put("text", listSelectToRender.get(key));

            return new ValueMapResource(resolver, new ResourceMetadata(), "nt:unstructured", vm);




    request.setAttribute(DataSource.class.getName(), ds);



0 Replies


Level 2


In that line of code have you tried using the global variable "currentPage"?


Level 2


Yes I tried to use currentPage as global variable but I got a null.

I am using this jsp inside dialog page property/


Level 2

It would be useful to know which version of AEM you are using.

Can you replace <%@include file="/libs/granite/ui/global.jsp"%> with the following?

<%@include file="/libs/foundation/global.jsp"%>


Level 2

Thank you.

I am using AEM 6.2.

I will replace it.